ビューを背面に送信しようとすると、ViewControllerのボタンとラベルの一部が非表示になります。私が後ろに送っているビューはUIImageViewです。何が問題なのか誰かが意見を持っていますか?
これが私が使用しているコードです:
UIImage *image = [UIImage imageNamed: @"background.jpg"];
UIImageView *backImage = [[UIImageView alloc] initWithImage: image];
[self.view addSubview: backImage];
[self.view sendSubviewToBack: backImage];
次に、self.viewにコントロールを追加すると、常に表示されるとは限りません。
コードをinitからloadViewに移動することで、なんとかそれを取得できました。なぜそれが違いを生むのか分かりませんが、ちょっと..うまくいきます!
UIView
のsendSubviewToBack:
または同様のメッセージを使用している場合は、おそらくUIImageView
の下の階層にボタンが挿入されています。ビューが階層内を移動すると、そのすべてのサブビューも一緒に移動します。
これを修正するには、最初にUIWindow
を追加したのと同じビュー(おそらくUIImageView
)のサブビューとしてコントロールを追加する必要があります。
コードを見ずに、より正確にすることは非常に困難です。
プログラムで追加してビューを調整する必要がないため、InterfaceBuilderでそれぞれをレイヤー化するのがはるかに簡単になります。画像ビューが背景として設定されている場合は、それが最初にリストされることを確認してください。
同意しました。 「後ろに送る」とはどういう意味かよくわかりませんが、推測は次のとおりです...
メインビュー内のレイヤーを調整する場合は、サブビューの数が多いビューを「後ろに」送信しないようにしてください(レイヤーを変更します)。そうしないと、すべてが後ろに移動します(レイヤーは変更)同時に。
これが完全にあなたの意図したものではない場合は、私に知らせてください。この回答を削除します。