iOS 9 и 10: добавлено пустое пространство вверху экрана при использовании руководства по макету безопасной области

В моем проекте swift 4 у меня iOS 9.0 как deployement target, и я использую safe area layout guide.

В storyboard я всегда ставлю 0 в качестве значения между моим основным view верхним пространством и safe area верхом. Когда я запускаю приложение в iOS 9 или iOS 10, у меня вверху появляется пробел.

Как удалить этот пробел, не отключая safe area layout guide?


person Ne AS    schedule 20.03.2018    source источник
comment
Вы используете navigationController?   -  person Meenor Ranpura    schedule 20.03.2018
comment
@MeenorRanpura да, но я скрываю панель навигации. Также все работает нормально в iOS 11, у меня проблемы с iOS 9 и 10   -  person Ne AS    schedule 20.03.2018


Ответы (3)


Перейти к Storyboard> Select the ViewController> Attribute Inspector (3-я вкладка справа на правой панели.)> Снимите флажок Adjust Scroll View insets.

person Lazy    schedule 20.03.2018
comment
не могли бы вы объяснить больше, пожалуйста? - person Ne AS; 20.03.2018

Полагаю, вы тестируете iPhone X? Вы можете изменить вставки безопасной зоны таким образом:

   var newSafeArea = UIEdgeInsets()
   newSafeArea.top -= 20
   self.additionalSafeAreaInsets = newSafeArea
person nerowolfe    schedule 20.03.2018
comment
Тестирую в iOS 6 на iOS 9 - person Ne AS; 20.03.2018
comment
Я получил эту ошибку «AdditionalSafeAreaInsets» доступен только в iOS 11.0 или новее » - person Ne AS; 20.03.2018
comment
Да, имеет смысл. Пропустил, что вы тестируете ниже iOS 11 - person nerowolfe; 20.03.2018

Я не могу объяснить почему, но в представлениях раскадровки не вычисляется высота панели навигации, и поэтому у вас будет пустое пространство (часто 44 пикселя). Вы можете удалить это, как сказал Lazy, выключив Adjust Scroll View insets, или вы можете сделать это программно, установив edgesForExtendedLayout = [] в вашем viewDidLoad()

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621515-edgesforextendedlayout расскажет вам об этом подробнее.

person Vollan    schedule 20.03.2018