我在.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?
答案 0 :(得分:1)
将它们全部放入数组中,然后循环遍历数组。如果它们是出口,您可以使用IBOutletCollection
。
答案 1 :(得分:1)
您要么在循环中构建视图,在这种情况下,您可以在创建它们时将它们添加到数组中。在另一种情况下,您在Interface Builder中创建了十八个视图,在这种情况下,jrturton关于IBOutletCollection的建议是可行的方法。
没有Obj-C内省功能可以让你通过字符串找到类成员。
你可以通过合成getter来获取getter,并通过构建一个(“view%d”,i)字符串来调用getter。使用这样的字符串,您可以提取选择器并调用它。
毋庸置疑,与将它们添加到数组中相比,这可能会非常复杂(可能仅通过过滤[self subviews])。