在iPhone上访问UIView中的每个按钮

3
我想做的是循环遍历UIView中的所有按钮(我有很多,超过40个按钮),并根据标签更改按钮显示的图像。 有人知道我该怎么做吗?
谢谢!!!

@stefan:伪代码?真的吗?! - Forer
3个回答

11

我会建议使用subviews属性,就像devilaether所说的那样,但在对其进行任何其他操作之前,请进行额外的检查以确保子视图是UIButton

for(UIView *view in [rootView subviews]) {
    if([view isKindOfClass:[UIButton class]]) {
        if([view tag] == 0) {
            // First image
        } /* ... */
        else {
            NSLog(@"didn't recognize tag");
        }
     } else {
        NSLog(@"view is not a button");
     }
}

如果您在某个地方存储了一个包含您想要迭代的UIButtons的NSArray,那么您也可以使自己的生活更加轻松; 这将消除isKindOfClass:检查。 有关更多信息,请参见NSObject协议


这个可以工作,但是 NSLog 需要在字符串前面加上 @。@"didn't recognize tag"。否则代码无法构建。尝试编辑它,但我不能编辑这样的小改变。 - HotFudgeSunday
好的发现 - 完全错过了那个 :) 谢谢! - Tim

1
使用包含按钮的UIView的subview属性。对于NSArray中的每个UIView元素,检查tag属性。如果标签与您的逻辑需要匹配,则更改在该UIView实例中显示的图像 - 在这种情况下是其中一个按钮。

0
for(i=0; i<numberOfTags; i++){ 
UIButton *tempBtn = [yourView viewWithTag:i];
[tempBtn setImage:yourImage];

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接