Apple Interface Builder: UIImageView にサブビューを追加する 質問する

Apple Interface Builder: UIImageView にサブビューを追加する 質問する

UIImageViewInterface Bulder の助けを借りて を作成しました。今度は、その中にラベルを配置したいと思います (サブビューとして)。コードでは次のように入力できます。[myUIImageView addSubview:myUILabel];しかし、IB の助けを借りてこれを行うことはできますか? の解決策は見つかりましたUIViewが、 の同様の解決策が見つかりませんUIImageView

ベストアンサー1

Apple のみが知っている理由により、インターフェイス ビルダーで UIImageView にサブビューを追加することはできません。プログラムでサブビューを追加できるというのは正しいのですが、自動サイズ変更マスクの設定やサブビューの配置のオーバーヘッドはすべてコードで処理する必要があり、面倒です。

そこで、簡単な回避策があります。UIImageView のインスタンスを nib にドラッグする代わりに、UIView をドラッグして、そのクラスを UIView から UIImageView に変更します (インスペクターの cmd+4 オプション)。デフォルトの imageView インスタンスと新しい UIImageView サブクラス インスタンスの nib で見つかる唯一の違いは、nib から新しい imageView にイメージを設定できないことです (cmd+1 オプション)。そのため、-viewDidLoad適切な viewController のメソッドで、UIImageView のこのアウトレットにイメージを設定します。

そうすることで、インターフェース ビルダーで「現在の UIImageView」インスタンスにサブビューを自由に追加できるようになります。これは非常に簡単です。

おすすめ記事