У меня действительно странная проблема с представлением в моем приложении для iPhone.self.view.frame/bounds UIViewController изменен между viewDidLoad и viewWillAppear iOS8
У меня есть два подкласса UIViewController
A
и B
.
UIViewController
класса B
(Давайте называть его b
) вызывается из метода внутри UIViewController
из A
(a
). Но когда отображается b
, кадр и границы «корневого» вида b
изменены магически между вызовами viewDidLoad
и viewWillAppear
. Я понятия не имею, почему это происходит. Насколько я знаю, у всех моих других взглядов нет этой проблемы.
Эти рамки и границы:
в viewDidLoad
:
self.view.frame: {0, 0}, {375, 667}
self.view.bounds: {0, 0}, {375, 667}
в viewWillAppear:
:
self.view.frame: {0, 64}, {375, 554}
self.view.bounds: {0, 0}, {375, 554}
Я сделал скриншот, чтобы продемонстрировать эту проблему. Желтая область - self.view
b
. красные и зеленые - это области self.view
. Они просто для моего макетирования. Я не думаю, что они оказывают какое-либо влияние на фрейм или рамки self.view
.
Есть ли у кого-нибудь идеи, что вызывает эту проблему?
Нет проблем. Кадр представления еще не завершен в 'viewDidLoad'. Это нормально. Не полагайтесь на это. – rmaddy
Вы должны сделать все, что связано с вашим кодом, в 'viewWillAppear' или позже. 'viewDidLoad' указывает только на то, что просмотренные просмотры загружены, но представления еще не находятся в конечной позиции. –
Хорошо, но почему это не происходит в других контроллерах? Или это просто совпадение, что оно работает в других? –