UIImageView
Interface 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」インスタンスにサブビューを自由に追加できるようになります。これは非常に簡単です。