2009-05-20 5 views
21

ビューを背面に送信しようとすると、ビューコントローラのボタンとラベルの一部が非表示になります。私が背中に送るビューは、UIImageViewです。誰が問題であるかもしれないという意見を持っていますか?ここでビューを背面に送信


私が使用していたコードです:私はself.viewにコントロールを追加していたときに

UIImage *image = [UIImage imageNamed: @"background.jpg"]; 
UIImageView *backImage = [[UIImageView alloc] initWithImage: image]; 
[self.view addSubview: backImage]; 
[self.view sendSubviewToBack: backImage]; 

はその後、彼らはいつも私が得ることができた


は表示されません。私のコードをinitからloadViewに移動することによってそれを変更しました。私はそれが違いを生むべき理由を理解していないが、ちょっと..それは動作します!

+0

サンプルコードを投稿できますか? – pgb

+0

あなたが「背中に送る」という意味では完全にはわからない –

答えて

17

UIViewsendSubviewToBack:などのメッセージを使用している場合、おそらくボタンが階層内のUIImageViewの下に挿入されている可能性があります。ビューが階層内を移動すると、そのすべてのサブビューも一緒に移動します。

これを修正するには、コントロールを最初にUIImageViewを追加した同じビュー(おそらくUIWindow)のサブビューとして追加する必要があります。

コードを見ることなく、より正確にすることは非常に難しいです。

0

あなたが "背中に送る"という意味ではわかりませんが、ここには推測があります...

メインビュー内でレイヤーを調整する場合は、必ず "バック"にビューを送信しないようにしてくださいサブビューの数が多いレイヤーを変更してください...そうでなければ、それらはすべて同時にバック(レイヤリングが変更される)に移動します。

これがまったく意味がない場合は、私にお知らせください。この回答は削除させていただきます。

1

プログラムで追加したり、ビューを調整したりする必要がなく、インターフェイスビルダでレイヤーを重ねるのがはるかに簡単です。画像ビューが背景として設定されている場合は、その画像ビューが最初にリストされていることを確認してください。

関連する問題