UIButton设置文本

问题描述 投票:37回答:3

我在xib文件上有大约10个UIButtons,我想用编程的方式设置文本。

iphone uibutton
3个回答
60
投票

你下次问问题的时候可能要更具体一些。

你可以尝试在界面生成器中为每个按钮分配一个不同的标签(如果你需要的话,也可以使用相同的标签),然后使用下面的代码。

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

2
投票

我想你可以从你的布局中创建一个按钮的集合。

从你的xib中选择第一个按钮 然后把它和正确的按钮一起拖到你的代码中去。Drag firs button

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

希望对你有所帮助


1
投票

在Swift 3+中。

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

否则

button.setTitle("Button Title", forState: UIControlState.Normal)
© www.soinside.com 2019 - 2024. All rights reserved.