0

我有一个带有多个视图的 xib 文件。他们IBOutlet的 s 被命名为view1, view2, view3, 等等,我想循环访问它们。在Objective-C中可以做到这一点吗?

我知道在 ActionScript 中,您可以像这样生成对象的名称: ["view"+num].

4

4 回答 4

3

将它们放在 IBOutletCollection 中。这是一个数组,您可以在界面生成器中填充它并遍历它。

于 2012-10-28T18:48:46.453 回答
2

与其命名它们,不如为它们分配标签 (0...10),然后您可以使用 .将它们从父视图中拉出viewWithTag:

于 2012-10-28T18:32:57.870 回答
1

使用键值编码。如果假设我有 view1 .. view 10,那么我会这样使用它;

for(int i=0 i< 10; i++){
  UIView *eachView = [self valueForKey:[NSString stringWithFormat:@"view%d", i]];
}

我希望这个对你有用。

于 2012-10-28T18:22:06.647 回答
0

实现此目的的另一种方法是使用NSDictionaryOfVariableBindings.

NSArray *views = [NSDictionaryOfVariableBindings(view1, view2, view3) allObjects];
for (UIView *item in views)
    do something with item;
于 2012-12-28T02:11:56.237 回答