У меня есть приложение с UITabController
, и каждая вкладка - UINavigationController
. Корень одного из моих UINavigationControllers
- это UIViewController
.
Внутри этого контроллера представления я хочу расположить некоторые подпредставления, но я не понимаю, где и как их расположить так, чтобы они не зависели от разрешения (т. Е. Не были жесткими значениями кода, такими как 320px, 480px, 44px и т. д.).
Когда представление полностью загружено и представлено на вертикальном iPhone, его высота будет 367px = 480 - 20 (строка состояния) - 44 (панель навигации) - 49 (панель вкладок).
Внутри контроллера представления я в настоящее время создаю все свои подпредставления в методе viewDidLoad
. Однако, похоже, что в этом методе текущая высота представления составляет 460 пикселей (self.view.bounds.size.height
). Поэтому при настройке своих подпредставлений я не могу правильно рассчитать размеры чего-либо.
В методе viewWillAppear:
представление знает , что оно имеет правильный размер, но это будет означать установку и вычисление кадров подпредставления каждый раз, когда представление будет отображаться (например, изменение табуляции или извлечение из контроллеров дочернего представления в стеке навигации.
Это единственный способ сделать это правильно для макета в viewWillAppear:
?
Я пытался использовать свойства авторазмера (родительские autoresizesSubviews
& autoresizingMask
), но, похоже, они вообще не работают !? Действуют ли они только после того, как все представление настроено, а затем изменено его размер (вручную / изменение ориентации?).
Буду признателен, если кто-нибудь сообщит мне, почему авторазмер не работает, и как лучше всего разобраться, не задавая жесткие размеры.