如何使用IBOutletCollection将多个UIImageView连接到同一个插座?

Bal*_*ick 31 xcode objective-c uiimageview ios iboutletcollection

我有10个UIImageViews做同样的事情(他们有一些void方法,用计时器改变他们的图像).我的UIImageView是一个插座,我想将所有10个imageView连接到同一个插座,但界面构建器不允许我.

我发现有一个解决方案,IBOutletCollection.任何人都可以向我解释如何使用它将多个imageView连接到同一个插座?

Pau*_*l.s 81

声明一个属性来保存你的imageView,然后像正常那样将它们连接到界面构建器中

@property (nonatomic, strong) IBOutletCollection(UIImageView) NSArray *imageViews;
Run Code Online (Sandbox Code Playgroud)

这只是一个正常NSArray但是当加载笔尖时,它将填充你的imageView


更新

在您查看具有多个imageView的控制器的头文件中,您需要添加上面的属性 - 它可能看起来像这样:

@interface MyViewController : UIViewController

@property (nonatomic, strong) IBOutletCollection(UIImageView) NSArray *imageViews;
// other properties

@end
Run Code Online (Sandbox Code Playgroud)

现在,在界面构建器中,您将所有imageView连接到此属性.

在此输入图像描述 在此输入图像描述

现在我只是使用该imageViews集合

for (UIImageView *imageView in self.imageViews) {
  imageView.image = someImage;
}
Run Code Online (Sandbox Code Playgroud)

  • 我真的不知道你是什么意思? (3认同)
  • @AndrewCr是的,它应该是.我们声明了一个`NSArray`,唯一感兴趣的对象就是viewController.你可以使用`weak`作为视图,因为它们将被父视图保留. (2认同)