我有一個帶有多個視圖的xib文件。他們的IBOutlet
s被命名爲view1
,view2
,view3
等等,我想在循環中訪問它們。在Objective-C中可以這樣做嗎?如何通過生成的實例名稱訪問對象?
我知道在ActionScript中你可以生成一個像這樣的對象的名字:["view"+num]
。
我有一個帶有多個視圖的xib文件。他們的IBOutlet
s被命名爲view1
,view2
,view3
等等,我想在循環中訪問它們。在Objective-C中可以這樣做嗎?如何通過生成的實例名稱訪問對象?
我知道在ActionScript中你可以生成一個像這樣的對象的名字:["view"+num]
。
使用鍵值編碼。如果說假設我有view1 .. view 10,那麼我會這樣使用它;
for(int i=0 i< 10; i++){
UIView *eachView = [self valueForKey:[NSString stringWithFormat:@"view%d", i]];
}
我希望它適合你。
而不是命名它們,將它們分配標籤(0 ... 10),然後您可以使用viewWithTag:
將它們拉出父視圖。
將它們放在IBOutletCollection中。這是一個數組,您可以在界面構建器中填充它並遍歷它。
另一種可以完成此操作的方法是使用NSDictionaryOfVariableBindings
。
NSArray *views = [NSDictionaryOfVariableBindings(view1, view2, view3) allObjects];
for (UIView *item in views)
do something with item;
這工作得很好。我也會提出這個建議。 –
太棒了!它工作:))非常感謝! –