2009-06-03 55 views
3

我想要做的是理想地循環遍歷UIView中的所有按鈕(我有很多,超過40個按鈕),並根據標記更改按鈕的圖像顯示。有誰知道我該怎麼做?訪問iPhone上的UIView中的每個按鈕

謝謝!

+0

@stefan:僞?真?! – Forer 2010-12-08 13:38:14

回答

1

使用包含按鈕的UIView的子視圖屬性。對於NSArray中的每個UIView元素,請檢查標記屬性。如果標籤符合您的邏輯需求,請更改該UIView實例中顯示的圖像 - 在本例中爲其中一個按鈕。

+0

非常感謝! – 2009-08-07 01:05:32

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"); 
    } 
}

你也可以讓你的生活如果你用你想迭代的UIButton來存儲一個NSArray,那麼更容易;這將取出isKindOfClass:檢查。有關更多信息,請參閱NSObject protocol

+0

這可以工作,但NSLog需要字符串之前的@。 @「沒有識別標籤」。否則代碼將不會生成。試圖編輯這個,但我不能編輯這些小改動。 – HotFudgeSunday 2012-06-21 19:03:16

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

}