UIImageView
Interface Bulder の助けを借りて作成しました。ここで、その中にラベルを配置したいと思います(サブビューとして)。コードでは、次のように入力でき[myUIImageView addSubview:myUILabel];
ます。の解決策は見つかりましたが、UIView
同様のものが見つかりませんUIImageView
。
4 に答える
Apple だけが知っている理由により、インターフェイス ビルダーで UIImageView にサブビューを追加することはできません。addSubview をプログラムで追加できると言っているのは正しいですが、自動サイズ変更マスクとサブビューの配置を設定するオーバーヘッドはすべてコードで処理する必要があり、面倒です。
そこで、簡単な回避策があります。nib で UIImageView のインスタンスをドラッグする代わりに、UIView をドラッグして、そのクラスを UIView から UIImageView に変更します (インスペクターの cmd+4 オプション)。デフォルトの imageView インスタンスと新しい UIImageView サブクラス インスタンスの nib に見られる唯一の違いは、nib から新しい imageView にイメージを設定できないことです (cmd+1 オプション)。したがって、-viewDidLoad
適切なviewControllerのメソッドで、画像をUIImageViewのこのアウトレットに設定します。
そうすることで、インターフェイス ビルダーで "now UIImageView" インスタンスにサブビューを自由に追加できます。これは非常に簡単です。
お役に立てれば 。. .
答えを付け加えたいと思います。
サブビューを追加することはできませんが、透明(クリアカラー)の背景UIImageView
を組み込むことで同じ効果を得ることができます。UIView
次に、その前に置きUIImageview
ます。
したがって、UIView
にはサブビューがあり、はのUIImageview
背景ですUIView
。
それがリンゴの意図だと思います。
これがスクリーンショットです:
結果は次のとおりです。
背景をクリアカラーに設定することを忘れないでください
誰かが実際にこれを行う方法のチュートリアルを私に教えてくれるなら、それは素晴らしいことです。私はそれをチェックされた答えの方法で何時間も費やしました。チェックされた答えは良い答えですが、作業中に背景画像をはっきりと見ることができないため、非常に直感的ではありません。私はそうするための適切な方法だと思います。
最新の XCode(4.5) には、必要なコントロールを親にドラッグ アンド ドロップするオプションがあります。
とても簡単です。同じスクリーンショットを添付します。Label/TextField と Button を UIImageView にドラッグしました
次のコードを使用します。
UIImage *image = [UIImage imageNamed:@"background.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view insertSubview:imageView atIndex:0];
( background.png を imageに置き換えます) ( atIndex:0を、イメージを挿入したい .index ルート内の任意の場所とオフに置き換えます。