Отправка вида назад - PullRequest
22 голосов
/ 20 мая 2009

Когда я пытаюсь отправить вид назад, он скрывает некоторые кнопки и метки в моем контроллере вида. Представление, которое я отправляю обратно, является 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. Я не понимаю, почему это должно иметь значение, но эй .. это работает!

Ответы [ 3 ]

17 голосов
/ 21 мая 2009

Если вы используете UIView sendSubviewToBack: или подобное сообщение, вероятно, ваши кнопки вставлены в иерархию под UIImageView. Когда представление перемещается в иерархии, все его подпредставления перемещаются вместе с ним.

Чтобы это исправить, вам нужно добавить свои элементы управления в качестве подпредставлений того же представления (возможно, UIWindow), к которому вы добавили UIImageView изначально.

Не видя ваш код, очень трудно быть более точным.

1 голос
/ 08 декабря 2011

Благодаря тому, что нет необходимости добавлять его программно и корректировать представления, намного проще наложить каждый слой в конструкторе интерфейсов. Убедитесь, что вид изображения, если он установлен в качестве фона, должен быть первым в списке.

0 голосов
/ 21 мая 2009

Согласовано. Не совсем уверен, что вы подразумеваете под «отправить обратно», но вот предположение ...

Если вы настраиваете наложение в главном представлении, убедитесь, что вы не отправляете представление «назад» (изменяя его слой), которое имеет количество подпредставлений ... иначе они все пошли бы назад ( их расслоение изменилось бы) одновременно.

Если это совсем не то, что вы имели в виду, просто дайте мне знать, и я удалю этот ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...