0

我有 15 个UIButtons标签相同

我将如何选择/访问所有这些?

最终,我想在事件触发器上更改所有这些属性的属性,并且我不想创建 15 个不同的 IBOutlets,将它们放在一个数组中......等等。

编辑:我知道我可以访问一个元素

UIButton *btn= (UIButton *)[self.view viewWithTag:12];

但是我将如何访问具有相同标签或其他属性的更多内容

4

2 回答 2

3

NSArray选项更容易。您可以像这样配置单个插座:

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

要使用标签,您需要编写递归搜索算法(假设按钮可以在任意容器视图中)。

于 2013-05-23T20:56:56.513 回答
1

编写 if 语句并遍历子视图的正确方法是这样的:

for (id aSubview in self.view.subviews){
    if ([aSubview isKindOfClass:[UIButton class]] &&  ([(UIButton *)aSubview tag] == 42)) {
         NSLog(@"found button with tag 42");
         // do whatever here
     }
}
于 2013-05-23T21:46:14.510 回答