Ios7 如何使用For循环操作IBMImageView串联对象

Ios7 如何使用For循环操作IBMImageView串联对象,ios7,xcode6,Ios7,Xcode6,#使用情节提要将一组图像放置在视图中。 我想使用For循环以编程方式操纵它们。但却找不到该怎么做 目前我正在使用以下代码: @property (weak, nonatomic) IBOutlet UIImageView *img_level2; @property (weak, nonatomic) IBOutlet UIImageView *img_level3; @property (weak, nonatomic) IBOutlet UIImageView *img_level4; @p

#使用情节提要将一组图像放置在视图中。 我想使用For循环以编程方式操纵它们。但却找不到该怎么做

目前我正在使用以下代码:

@property (weak, nonatomic) IBOutlet UIImageView *img_level2;
@property (weak, nonatomic) IBOutlet UIImageView *img_level3;
@property (weak, nonatomic) IBOutlet UIImageView *img_level4;
@property (weak, nonatomic) IBOutlet UIImageView *img_level5;
@property (weak, nonatomic) IBOutlet UIImageView *img_level6;
@property (weak, nonatomic) IBOutlet UIImageView *img_level7;
...
...
...
_img_level2.image = [_img_level2.image convertToGrayscale];
_img_level3.image = [_img_level3.image convertToGrayscale];
_img_level4.image = [_img_level4.image convertToGrayscale];
_img_level5.image = [_img_level5.image convertToGrayscale];
_img_level6.image = [_img_level6.image convertToGrayscale];
_img_level7.image = [_img_level7.image convertToGrayscale];
现在,我想使用for循环,而不是一行一行地写它们。因为此过程可能会被多次调用以调整大小和定位


请大家多多指教,谢谢

您可以定义outlet集合,而不是将每个按钮都作为自己的UIButton属性,该集合本质上是一个数组,您可以完全按照自己的需要处理它(例如,循环它的所有项)

你是怎么做到的?简单:

在代码中,将所有
ibuiimageview…
行替换为:

IBOutletCollection(UIImageView) NSMutableArray *imgLevels;
在InterfaceBuilder上,为每个UIImageView提供一个不同的标记,该标记将与其在IBMoutletCollection中的索引相匹配

最后,当您连接.xib或故事板文件上的对象时,您会注意到它将出现在引用插座集合部分,而不是您习惯的引用插座部分


现在,您有了一个数组,可以使用它在IBOutlets上循环,就像循环“常规”NSArray一样。祝你好运

谢谢,这似乎是一个可靠的方法,但出于好奇,如果不使用IBOutletCollection,如何实现这一点呢?因为让我们假设,如果我们动态创建UIImage对象,那么就不会有IBMoutletCollection?这会更容易。您只需手动创建数组,并在动态创建UIImageView时将其添加到数组中;然后将实际图像添加到图像视图中,将图像视图添加到屏幕中,如下所示[self.view addSubview:curImg];然后像这样将图像视图添加到数组中[imgLevels addObject:curImg];然后,您拥有与我在原始答案中引用的集合相同的数组。