UIButton setText以编程方式

时间:2010-07-28 11:00:22

标签: iphone uibutton

我在xib文件上有大约10个UIButtons,并希望以编程方式设置文本

3 个答案:

答案 0 :(得分:60)

下次提问时,您可能希望更具体。

您可以尝试为界面构建器中的每个按钮分配不同的标记(如果需要,可以使用相同的标记),然后使用以下代码

for (int i = 1 ; i<=10;i++)
{
     UIButton *myButton = (UIButton *)[myView viewWithTag:i];
     [myButton setTitle:@"my text" forState:UIControlStateNormal];
}

答案 1 :(得分:3)

在Swift 3+中:

button.setTitle("Button Title", for: .normal)

否则:

button.setTitle("Button Title", forState: UIControlState.Normal)

答案 2 :(得分:2)

我认为您可以在布局中创建一系列按钮:

从xib中选择第一个按钮,然后使用右键将其拖到代码中: Drag firs button

然后你应该为Connection类型选择“Outlet Collection”并指定一个名字:

select Outlet collection

然后在您的代码中,您有一个来自xib文件的按钮数组:

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;

接下来,在创建的集合上选择并拖动其他按钮,按照要迭代的顺序逐个执行: Drag the other buttons

您可以检查悬停在您创建的阵列上的连接检查器中按钮的顺序: check button order

现在设置每个按钮文字:

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的值,则该属性默认为系统值。因此,您至少应该设置正常状态的值。

我希望有帮助