Я добавляю пользовательские представления в UIPageViewController, который встроен внутри UINavigationController, из-за этого мне нужно добавить прописку 20.0 с верхней части каждого дочернего представления внутри контейнера UIPageViewController, чтобы они сидят аккуратно под навигационной панелью.UIView add padding сверху
Я в настоящее время использую layoutMargins
свойство UIView, в установлении новых края врезки на взгляд, прежде чем он будет загружен в память, вот мой вспомогательный метод для создания нового вида:
private func instanciateViewController(pageType: ViewType) -> UIViewController? {
var pageView : UIViewController?
switch(pageType)
{
case .SHOP :
pageView = storyboard!.instantiateViewControllerWithIdentifier("ShopFloorViewController")
break
case .TASKS :
pageView = storyboard!.instantiateViewControllerWithIdentifier("TaskListTableViewController")
break
case .PERSONNEL :
pageView = storyboard!.instantiateViewControllerWithIdentifier("PersonnelListViewController")
break
}
pageView!.view.layoutMargins = UIEdgeInsetsMake(20, 0, 0, 0)
return pageView
}
Линия: pageView!.view.layoutMargins = UIEdgeInsetsMake(50, 0, 0, 0)
обеспечивает правильную вставку для первого загруженного экрана, однако любое взаимодействие на сцене затем вызывает просмотр повторно рендеринга без вставки.
Как я могу сделать вставки на дочерних видах внутри моего UIPageViewController постоянными?
Отлично, работал как шарм. Похоже, что 'layoutSubviews' вызывается всякий раз, когда происходит взаимодействие. Не могу поверить, что я не думал попробовать это :) – Alex
Он вызывается каждый раз, когда подсмотры нужно перерисовывать по любой причине, включая поворот. Поэтому убедитесь, что вы также проверили вращения. – Eppilo
Gotcha, я новичок в iOS, поэтому все это для меня. Наверное, мне нужно больше узнать о документации жизненного цикла обзора ... еще раз спасибо – Alex