Изменение размера представления после viewWillAppear - PullRequest
0 голосов
/ 22 октября 2011

В моем приложении для iPhone, которое основано на NavigationController, у меня есть некоторые элементы a, b, c подпредставлений другого представления X. Когда я нажимаю на контроллер, чтобы получить это представление, в viewWillAppear я настраиваю размер и положениеa, b и c в соответствии с размером X, чтобы правильно обрабатывать ориентацию устройства.Проблема в том, что размер X изменяется после вызова viewWillAppear.Я подклассифицировал X и написал метод setFrame, чтобы установить точку останова и попытаться найти причину.Ниже приведены ссылки на изображения (я не мог опубликовать изображение напрямую из-за отсутствия точек), показывающие разрыв в viewWillAppear и разрыв в setFrame после viewWillAppear с помощью стека вызовов.Мне нужна помощь, чтобы узнать, почему размер X изменяется таким образом.Спасибо.

При viewWillAppear: http://img718.imageshack.us/img718/9898/viewwillappearbreak.th.png

После viewWillAppear в разрыве при подклассе setFrame: http://img703.imageshack.us/img703/7995/afterviewwillappear.th.png

Заранее спасибо.(Я надеюсь, что изображения будут отображаться правильно).

1 Ответ

0 голосов
/ 23 октября 2011

Спасибо за все ответы с предоставленной мною ограниченной информацией.Я наконец-то нашел причину проблемы.Мой nib-файл включал в себя панель инструментов (что, я думаю, плохо, если вы используете контроллер навигации) и Я также звонил

setToolbarHidden: NO

на моем контроллере навигации.Я новичок в программировании для iPhone и подумал, что панель инструментов в файле пера как-то будет отображаться в виде панели навигации.Кажется, это не тот случай.Я понимаю, почему возникла проблема:

  • Вид загружен панелью инструментов из пера, и у навигационного контроллера была видимая панель инструментов, поэтому высота моего вида Х была 328. (высота 2 панелей инструментов была вычтена при настройке на размер экрана (одна из контроллера навигатора и одна в представлении).
  • После viewWillAppear код контроллера навигации, по-видимому, обнаружил 2 панели инструментов, поэтому было решеночтобы скрыть один в контроллере навигации, увеличив высоту моего вида X на 44 (до 372).

Я удалил панель инструментов из файла пера и добавил элементы панели инструментов на панель инструментов контроллера навигации с помощьюВызов

setToolbarItems

Высота кадра осталась неизменной после viewWillAppear.

Спасибо за ответы.Я надеюсь, что эти комментарии принесут пользу кому-то еще, сталкивающемуся с той же самой проблемой.

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