web-dev-qa-db-ja.com

IBOutletCollectionを使用して複数のUIImageViewを同じコンセントに接続するにはどうすればよいですか?

同じことを行う10個のUIImageViewがあります(タイマーで画像を変更するいくつかのvoidメソッドがあります)。私のUIImageViewはアウトレットなので、10個すべてのimageViewを同じアウトレットに接続したいのですが、インターフェイスビルダーでは許可されません。

IBOutletCollectionというソリューションがあることがわかりました。誰も私にこれを使用して複数のimageViewsを同じコンセントに接続する方法を説明できますか?

30
BalestraPatrick

ImageViewを保持するプロパティを宣言し、通常のようにインターフェイスビルダーに接続します

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

それは通常のNSArrayですが、nibがロードされると、imageViewの


更新

複数のimageViewがオンになっているビューコントローラーのヘッダーファイルで、上記のプロパティを追加する必要があります。次のようになります。

@interface MyViewController : UIViewController

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

@end

ここで、インターフェイスビルダーで、すべてのimageViewをこの1つのプロパティに接続します。

enter image description hereenter image description here

今、私はimageViewsコレクションで作業しています

for (UIImageView *imageView in self.imageViews) {
  imageView.image = someImage;
}
79
Paul.s