在xcode中选择具有特定标记的所有元素

时间:2013-05-23 20:51:18

标签: iphone ios

我有15 UIButtons具有相同的标记

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

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

编辑:我知道我可以使用

访问一个元素
UIButton *btn= (UIButton *)[self.view viewWithTag:12];

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分: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
     }
}