我有大约10个UIButtons的xib文件,并希望以编程的方式setText
发布于 2010-07-28 19:05:35
下次问问题时,你可能想要更具体一些。
您可以尝试为界面构建器中的每个按钮分配一个不同的标记(如果需要的话,也可以使用相同的标记),然后使用以下代码
for (int i = 1 ; i<=10;i++)
{
UIButton *myButton = (UIButton *)[myView viewWithTag:i];
[myButton setTitle:@"my text" forState:UIControlStateNormal];
}发布于 2020-05-04 17:30:20
在Swift 3+中:
button.setTitle("Button Title", for: .normal)否则:
button.setTitle("Button Title", forState: UIControlState.Normal)发布于 2015-09-30 16:21:00
我认为你可以从你的布局中创建一个按钮集合:
从您的xib中选择第一个按钮,并使用右键将其拖动到代码中:

然后,您应该选择"Outlet Collection“作为连接类型,并指定一个名称:

然后,在您的代码中有一个来自xib文件的按钮数组:
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;接下来,选择其他按钮并将其拖到已创建的集合上,按您希望迭代它们的顺序逐个执行:

可以在悬停在已创建的数组上的连接检查器中检查按钮的顺序:

现在设置每个按钮的文本:
for (int i = 0; i<self.buttons.count; i++) {
UIButton * button = self.buttons[i];
[button setTitle: [NSString stringWithFormat:@"Button %d",i ] forState:UIControlStateNormal];
}请注意,UIControlStateNormal是默认状态,如果未被覆盖,则会为所有状态显示它:
通常,如果没有为状态指定属性,则默认为使用UIControlStateNormal值。如果未设置UIControlStateNormal的值,则该属性默认为系统值。因此,您至少应该设置normal状态的值。
我希望这对你有帮助
https://stackoverflow.com/questions/3352165
复制相似问题