2014-12-27 4 views
1

Я работаю над личным проектом и в процессе ощущения возможного потока навигации приложения.Странное поведение UINavigationBar на iPhone 6 Plus

Я использую UIPageViewController для переключения между несколькими контроллерами представлений.

Проблема, которую я вижу, происходит только на iPhone 6 Plus. Вот скриншот:

enter image description here

Как вы можете видеть, когда я красть от одного контроллера представления на «следующий» один навигационный бар «следующий» контроллер представления, как представляется, 20 пункт короче что это должно быть (строка состояния присутствует). Когда он полностью загружается, высота достигает своего правильного размера.

Это происходит только на iPhone 6 Plus и только при первоначальном запуске.

Любое понимание/помощь будет оценена по достоинству.

ответ

2

Есть несколько способов решить это, я полагаю (теперь, когда я получил его работу).

Простейшим решением является установка рамки на страницеViewController.view для отображения строки состояния.

self.pageViewController.view.frame = CGRectMake(0.0, 20.0, self.view.frame.size.width, self.view.frame.size.height - 20.0) 

И поскольку это все, что мне нужно в моей конкретной ситуации, я очень доволен результатом.

Другое решение будет включать программные ограничения (добавления) в представление, к которому вы добавляете pageViewController.view.

override func updateViewConstraints() { 
    super.updateViewConstraints() 

    self.pageViewController.view.setTranslatesAutoresizingMaskIntoConstraints(false) 
    self.view.addConstraint(NSLayoutConstraint(item: self.pageViewController.view, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 20.0)) 
    self.view.addConstraint(NSLayoutConstraint(item: self.pageViewController.view, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: 0.0)) 
    self.view.addConstraint(NSLayoutConstraint(item: self.pageViewController.view, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Leading, multiplier: 1.0, constant: 0.0)) 
    self.view.addConstraint(NSLayoutConstraint(item: self.pageViewController.view, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Trailing, multiplier: 1.0, constant: 0.0)) 
} 

Приведенный выше пример переопределяет функцию updateViewConstraints().

Надеюсь, что это поможет кому-то по пути. Если есть лучшее решение, сообщите мне.

Спасибо!

+0

Браво. Простое решение отлично поработало для меня. – darkheartfelt

+0

Большое спасибо. Спасите мое время .. – torap

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