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