2015-10-22 5 views
0

UINavigationController -> UITabBarController -> UIViewController -> UITableViewUITableView Layout вопрос (Content врезке)

У меня есть UINavigationController с UITabBarController как его RootViewController, затем положить UITableView в одном из вкладки (UIViewController)

Когда я переключаюсь на один из tabController, который содержит UITableView, первую ячейку таблицыView под панелью навигации. Если я нажму еще один контроллер представления, то попсуйте назад, ретранслятор tableview вправо. Как сделать макет прямо на старте.

ответ

0

сделать макет в viewWillAppear может решить проблему

+0

как сделать макет в viewWillAppear переопределение FUNC viewWillAppear (анимированный: Bool) { super.viewWillAppear (анимированный) .... Что здесь } – Chris

+0

установить рамку Tableview, или использовать autolayout (настоятельно рекомендуется кладка) @Chris – PenotyDelPiero

+0

установить кадр не работает. не пробовали каменную кладку. – Chris

0

я решил. Это вопрос о topLayoutGuide, это исправить (Swift) с помощью переопределения topLayoutGuide свойство

override var topLayoutGuide:UILayoutSupport { 
    get { return (self.parentViewController?.topLayoutGuide)! } 
} 

override var bottomLayoutGuide:UILayoutSupport { 
    get { return (self.parentViewController?.bottomLayoutGuide)! } 
} 

(цель C)

(id<UILayoutSupport>) topLayoutGuide { 
return self.parentViewController.topLayoutGuide; 

}

  • (ID) bottomLayoutGuide { возврата self.parentViewController.bottomLayoutGuide; }

  • (void) viewWillLayoutSubviews { [super viewWillLayoutSubviews]; // NSLog требуется здесь, просто вызовите getter, не знаете, почему в Objective C getter не вызывается по умолчанию NSLog (@ "% @", self.topLayoutGuide); }

  • (void) viewDidLayoutSubviews { [super viewDidLayoutSubviews]; // NSLog требуется здесь, просто вызовите getter, не знаете, почему в Objective C getter не вызывается по умолчанию NSLog (@ "% @", self.topLayoutGuide); }

Смежные вопросы