我有一个带有多个视图的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;
这工作得很好。我也会提出这个建议。 –
太棒了!它工作:))非常感谢! –