如何使用 IBOutletCollection 将多个 UIImageViews 连接到同一个插座?
Posted
技术标签:
【中文标题】如何使用 IBOutletCollection 将多个 UIImageViews 连接到同一个插座?【英文标题】:How can I use IBOutletCollection to connect multiple UIImageViews to the same outlet? 【发布时间】:2013-04-05 14:46:56 【问题描述】:我有 10 个 UIImageViews 做同样的事情(他们有一些用计时器改变图像的 void 方法)。 我的 UIImageView 是一个插座,我想将所有 10 个 imageView 连接到同一个插座,但界面生成器不允许我这样做。
我发现有一个解决方案,IBOutletCollection。谁能向我解释如何使用它来将多个 imageViews 连接到同一个插座?
【问题讨论】:
【参考方案1】:声明一个属性来保存您的 imageView,然后像正常一样将它们连接到界面构建器中
@property (nonatomic, strong) IBOutletCollection(UIImageView) NSArray *imageViews;
这只是一个普通的NSArray
,但是当 nib 被加载时,它会被你的 imageView 填充
更新
在您的视图控制器的头文件中,您需要添加上面的属性 - 它可能看起来像这样:
@interface MyViewController : UIViewController
@property (nonatomic, strong) IBOutletCollection(UIImageView) NSArray *imageViews;
// other properties
@end
现在在界面构建器中,您将所有 imageView 连接到这一属性。
现在我只使用imageViews
集合
for (UIImageView *imageView in self.imageViews)
imageView.image = someImage;
【讨论】:
但我的代码中只有一个 imageView,这就是我想要的。我想在代码中将此图像与情节提要视图中的多个图像视图连接起来。 您需要创建一个数组来保存对所有这些图像视图的引用。这样做的方法是使用IBOutletCollection
,如上所示
但是如果只有 1 张图片,我需要填充哪些图片?
我真的不明白你的意思?
@AndrewCr 是的,应该是。我们声明了一个NSArray
,唯一对它感兴趣的对象是out viewController。您可以将weak
用于视图,因为它们将被其父视图保留。以上是关于如何使用 IBOutletCollection 将多个 UIImageViews 连接到同一个插座?的主要内容,如果未能解决你的问题,请参考以下文章
UIButton -setTitle: forState: 似乎不起作用