2016-11-05 5 views
0

Я использую SLPagingView, чтобы иметь движущуюся навигационную панель в моем Swift 3 проект.Как использовать UITabBarController с NavigationBar и ScrollView?

enter image description here

Контроллер является SubClass из UIViewController с ScrollView.

Я хочу использовать UITabBarController как один из встроенных UIViewControllers. Проблема заключается в том, что мой TabBar отсутствует:

белая полоса в зеленый контроллер показывает проблему:

enter image description here

Текущий результат на тренажере (iPhone 7 Plus):

enter image description here

Я думаю, что TabBar отсутствует в размере NavigationBar + StatusBar. В других контроллерах я использую UITableViews с вставкой. Как отобразить UITabBar в текущей ситуации? Помощь очень ценится.

Edit:

В текущей работе вокруг, у меня есть «решение», чтобы переместить TabBar в нужное положение.

class TabC: UITabBarController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     let statusBarHeight = UIApplication.shared.statusBarFrame.height 
     let screenSize: CGRect = UIScreen.main.bounds 
     let tabBarFrame = CGRect(x: 0, y: (screenSize.height - 88 + statusBarHeight), width: screenSize.width, height: 0) 

     self.tabBar.frame = tabBarFrame 
    } 
} 

Идеальная позиция 2 раза в NavigationBar (2x 44 = 88) минус statusBarHeight. Он работает на iPhone 5S, 6, 7 Plus. Каждый раз в том же положении.

Но почему 2 раза в NavigationBar (минус statusBarHeight) и это лучший подход?

enter image description here

+0

что тянущаяся пространство между whiteBar (метка) на панели инструментов является то, что 4? – Joe

+0

Вы внесли какие-либо изменения в высоту вашего SLPagingView? .. – Joe

+0

SLPagingView, сделанный из пользовательского UIView, не изначально из navigationBar (44) + no tabBar в вашем SLPagingView (44), который делает 2x размер вашего навигационного блока. – Joe

ответ

1

Примечание: Ниже ответ на основании разговора с владельцем вопроса.

От должности: Идеальное положение в 2 раза - навигационная панель (2x 44 = 88). Он работает на iPhone 5S, 6, 7 Plus. Каждый раз в том же положении. Но почему 2 раза навигационная панель?

SLPagingView бар обычай UIView, который действует как скользящий navigationBar.From вашего tabBarController.you программно скрывает строку состояния ..

Расчет:

не Согласно контроллеру SLPagingView там нет navigationBar (44) и tabBar (44), которые делают 2 x 44 = 88 ..

Из вашего расчета tabBarController должно быть, как показано ниже

UIApplication.shared.statusBarFrame.height + UINavigationController().navigationBar.frame.height + UINavigationController().toolbar.frame.height + tailingSpace between the barView to tabBar(8 as he mentioned) 
Смежные вопросы