按名称访问UIImageVIew

时间:2011-10-08 22:26:49

标签: iphone objective-c

我在.h中声明了18个UIImageViews,命名如下:view1,view2,view3 ......一直到view18。如何在迭代器i的循环中访问名为view [i]的视图?

所以这样:

for(int i=0;i<19;i++)
       imageView=view[i]; //this doesn't work obviously, but how would I do this?

2 个答案:

答案 0 :(得分:1)

将它们全部放入数组中,然后循环遍历数组。如果它们是出口,您可以使用IBOutletCollection

答案 1 :(得分:1)

您要么在循环中构建视图,在这种情况下,您可以在创建它们时将它们添加到数组中。在另一种情况下,您在Interface Builder中创建了十八个视图,在这种情况下,jrturton关于IBOutletCollection的建议是可行的方法。

没有Obj-C内省功能可以让你通过字符串找到类成员。

你可以通过合成getter来获取getter,并通过构建一个(“view%d”,i)字符串来调用getter。使用这样的字符串,您可以提取选择器并调用它。

毋庸置疑,与将它们添加到数组中相比,这可能会非常复杂(可能仅通过过滤[self subviews])。