我有一个包含许多视图的xib文件。他们的IBOutlet
名为view1
,view2
,view3
,依此类推,我希望在循环中访问它们。是否可以在Objective-C中执行此操作?
我知道在ActionScript中你可以像这样生成一个对象的名字:["view"+num]
。
答案 0 :(得分:3)
将它们放入IBOutletCollection中。这是一个数组,您可以在界面构建器中填充它并迭代它。
答案 1 :(得分:2)
不是命名它们,而是为它们分配标签(0 ... 10),然后你可以用viewWithTag:
将它们从父视图中拉出来。
答案 2 :(得分:1)
使用键值编码。如果假设我有view1 ..查看10,那么我会像这样使用它;
for(int i=0 i< 10; i++){
UIView *eachView = [self valueForKey:[NSString stringWithFormat:@"view%d", i]];
}
我希望它适合你。
答案 3 :(得分:0)
另一种可以实现此目的的方法是使用NSDictionaryOfVariableBindings
。
NSArray *views = [NSDictionaryOfVariableBindings(view1, view2, view3) allObjects];
for (UIView *item in views)
do something with item;