【发布时间】:2012-10-18 04:13:44
【问题描述】:
我有一个包含多个视图的 xib 文件。他们的IBOutlets 被命名为view1、view2、view3 等等,我想循环访问它们。在Objective-C中可以做到这一点吗?
我知道在 ActionScript 中您可以生成这样的对象名称:["view"+num]。
【问题讨论】:
标签: objective-c
我有一个包含多个视图的 xib 文件。他们的IBOutlets 被命名为view1、view2、view3 等等,我想循环访问它们。在Objective-C中可以做到这一点吗?
我知道在 ActionScript 中您可以生成这样的对象名称:["view"+num]。
【问题讨论】:
标签: objective-c
将它们放在 IBOutletCollection 中。这是一个数组,您可以在界面生成器中填充它并遍历它。
【讨论】:
与其命名它们,不如为其分配标签 (0...10),然后您可以使用 viewWithTag: 将它们从父视图中拉出。
【讨论】:
使用键值编码。如果说假设我有 view1 .. view 10,那么我会这样使用它;
for(int i=0 i< 10; i++){
UIView *eachView = [self valueForKey:[NSString stringWithFormat:@"view%d", i]];
}
我希望它对你有用。
【讨论】:
实现此目的的另一种方法是使用NSDictionaryOfVariableBindings。
NSArray *views = [NSDictionaryOfVariableBindings(view1, view2, view3) allObjects];
for (UIView *item in views)
do something with item;
【讨论】: