Apple Interface Builder:uiimageViewにサブビューを追加します
-
19-09-2019 - |
質問
私が作成しました UIImageView
インターフェースの電球の助けを借りて。今、私はその中にラベルを入れたいと思います(そのサブビューとして)。コードでは、次のようなものを入力できます。 [myUIImageView addSubview:myUILabel];
しかし、私はIBの助けを借りてそれをすることができますか?の解決策を見つけました UIView
, 、しかし、似たようなものを見つけることができません UIImageView
.
解決
Appleにしか知られていない理由で、インターフェイスビルダーのuiimageviewにサブビューを追加することはできません!プログラムでsubviewを追加できると言っているのは正しいことですが、自動化マスクとサブビューの配置を設定するオーバーヘッドは、すべてコードで処理する必要があります。これは面倒です。
そのため、簡単な回避策があります。 NIBのuiimageViewのインスタンスをドラッグする代わりに、uiviewをドラッグして、クラスをUiview(cmd+4オプションのインスペクター)からUiimageViewに変更するだけです。デフォルトのImageViewインスタンスと新しいuiimageViewサブクラスインスタンスのNIBにある唯一の違いは、次のことです。NIB(CMD+1オプション)の新しいImageViewに画像を設定できないことです。だから、 -viewDidLoad
適切なViewControllerの方法は、UiiMageViewのこのアウトレットに画像を設定します。
そうすることで、インターフェイスビルダーの「Now UiimageView」インスタンスにサブビューを自由に追加できますが、これは非常に簡単です。
お役に立てれば 。 。 。
他のヒント
答えを追加したいです。
サブビューを追加することはできません UIImageView
, 、組み込むことで同じ効果を得ることができます UIView
透明な(透明な色)背景を備えています。
次に、 UIImageview
その前に。
だから UIView
サブビューがあります UIImageview
の背景です UIView
.
それがアップルの意図だと思います。
これがスクリーンショットです:
これが結果です:
背景を明確な色として設定することを忘れないでください
誰かが実際に私にチュートリアルを指摘できれば、これを行う方法は素晴らしいことです。私はチェックされた方法でそれを何時間も費やしました。チェックされた答えは素晴らしい答えですが、動作中に背景画像をはっきりと見ることができないため、非常に直感的ではありません。私はそうするための適切な方法だと思います。
最新のXcode(4.5)には、必要なコントロールを親にドラッグアンドドロップするオプションがあります。
とても簡単です。同じもののスクリーンショットが添付されています。ラベル/テキストフィールドとボタンをuiimageviewにドラッグしました
このコードを使用してください:
UIImage *image = [UIImage imageNamed:@"background.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view insertSubview:imageView atIndex:0];
(交換 画像付きのbackground.png) (交換 atindex:0 .indexルートにある場所で、画像とオフを挿入する必要があります。