Как заставить layoutSubviews UIView.

У меня есть собственный UIView, в котором есть выделенный вручную установленный фрейм для портретной и альбомной ориентации, потому что автоизменение размеров маски просто не работает в моем случае.

Я установил этот кадр в:

 - (void)viewWillAppear:(BOOL)animated

И он работает, как ожидалось.

Моя проблема теперь в том, что мой UIView, кроме того, имеет подвиды, которые также имеют специальную позицию для портрета / ландшафта.

Я помещаю эти подпредставления в:

- (void)layoutSubviews

Если теперь я оставлю свой viewController в , например. портретная ориентация, повернуть в альбомную на другом viewController, а затем вернуться к этому viewController Я вижу, что размер моего представления был изменен правильно, но подпредставления моего представления, которые позиционируются в layoutSubviews, еще не перемещаются, но изменяются в размерах в анимированном мода после просмотра уже появилась.

Я ничего не делаю в viewDidAppear, и я уже пробовал вызвать

 - (void)layoutIfNeeded

, а также:

 - (void)setNeedsLayout

In viewWillAppear, но, похоже, это ничего не меняет.

Есть идеи, что я делаю не так?

Спасибо.

50
задан Irfan 25 March 2014 в 09:09
поделиться