31

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

IBOutletCollectionという解決策があることがわかりました。これを使用して複数のimageViewを同じアウトレットに接続する方法を誰かに説明してもらえますか?

4

1 に答える 1

83

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

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

それは単なる正常NSArrayですが、ペン先がロードされると、imageView が取り込まれます


アップデート

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

@interface MyViewController : UIViewController

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

@end

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

ここに画像の説明を入力 ここに画像の説明を入力

今、私はimageViewsコレクションを操作するだけです

for (UIImageView *imageView in self.imageViews) {
  imageView.image = someImage;
}
于 2013-04-05T15:45:08.103 に答える