作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 9 个 IBOutlets
用于 imageView
,名为 imageView1,imageView2,....
我必须将数组的第一个对象分配给 imageView1,将第二个对象分配给 imageView2,.....
现在我的问题是 - 有什么方法可以遍历属性名称
例子-
for(int i=0;i<[randomizedArray count];i++)
{
NSString *imageViewName=[NSString stringWithFormat:@"%@%i",@"imageView",i];
imageViewName.image=[appDelegate.splittedImageArray ObjectAtIndex:i];
}
这意味着它会自动分配值作为
imageView1.image=[appDelegate.splittedImageArray ObjectAtIndex:i];
imageView2.image=[appDelegate.splittedImageArray ObjectAtIndex:i];
最佳答案
在不更改 IBOutlets 的情况下,您最接近的可能是这样的:
NSArray *imageViews = @[imageView1,imageView2,imageView3, ...];
for(int i=0; i<[randomizedArray count]; i++) {
[[imageViews objectAtIndex:i] setImage:[appDelegate.splittedImageArray objectAtIndex:i]];
}
但是有更好的解决方案- IBOutletCollection
你可以这样定义一个属性:
@property (nonatomic, retain) IBOutletCollection(UIImageView) NSArray *imageViews;
然后像这样连接所有的 imageView:
然后您将拥有一个包含所有 UIImageView
的数组,您可以使用上面的代码而无需手动声明这样的数组...
关于iphone - 遍历 iPhone 中的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16931930/
我是一名优秀的程序员,十分优秀!