ach*_*ral 7 arrays objective-c uibutton
如果我在Interface Builder中设置了大量按钮,我如何通过代码将它们放入数组中?
例如,如果我有三个按钮,并在接口文件中定义它们:
@property (nonatomic, retain) IBOutlet UIButton *button1;
@property (nonatomic, retain) IBOutlet UIButton *button2;
@property (nonatomic, retain) IBOutlet UIButton *button3;
Run Code Online (Sandbox Code Playgroud)
如果我想将每个按钮重命名为"Hello",我希望能够将它们组合成一个数组,然后使用如下函数:
for (int i = 0; i < someArray.count; i++)
{
someArray[i].text = @"Hello";
}
Run Code Online (Sandbox Code Playgroud)
有人可以提供有关如何实现这一目标的信息(如果可能的话)?
谢谢
Lac*_*che 14
另一种方法是将按钮连接到Interface Builder中的NSArray.
@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttons;
Run Code Online (Sandbox Code Playgroud)
以下代码将添加5个按钮,每个按钮都带有一个新标签,并将其连接到一个事件.按钮将与5px填充并排放置:
如果您计划访问for{}以下范围之外的按钮,则可以在标题中定义按钮,否则,您可以在范围内定义按钮.UIButton * settButton;
CGFloat staticX = 5; // Static X for all buttons.
CGFloat staticWidth = 60; // Static Width for all Buttons.
CGFloat staticHeight = 56; // Static Height for all buttons.
CGFloat staticPadding = 5; // Padding to add between each button.
for (int i = 0; i < 5; i++)
{
settButton = [UIButton buttonWithType:UIButtonTypeCustom];
[settButton setTag:i];
[settButton setFrame:CGRectMake((staticX + (i * (staticHeight + staticPadding))),5,staticWidth,staticHeight)];
[settButton setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%i.png",i]] forState:UIControlStateNormal];
[settButton addTarget:self action:@selector(buttonEvent:) forControlEvents:UIControlEventTouchDown];
[settButtonView addSubview: settButton];
}
[self.view addSubview: settButtonView];
Run Code Online (Sandbox Code Playgroud)
假设IB中的按钮正确连接到IBOutlet属性,那么它就像以下一样简单:
NSArray *buttonArray = [[NSArray alloc] initWithObjects:button1,button2,button3,nil];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11842 次 |
| 最近记录: |