Я пытаюсь разместить UILabel под навигационной панелью и сдвинуть содержимое viewController в зависимости от высоты UILabel.
Я использую AdditionalSafeAreaInsets для устройств> iOS 11, которая в большинстве случаев работает, но откат для предварительной iOS 11, похоже, неРабота.Содержимое помещается под меткой (iOS 9):
Код вызывается в viewDidLoad для containerViewController.Я использую XCode 10.1 с xibs.
if let _ = someThing {
let spacing: CGFloat = 30.0
if viewController.parent == nil {
return
}
if #available(iOS 11.0, *) {
viewController.additionalSafeAreaInsets.top = spacing
}
else {
NSLayoutConstraint.activate([
viewController.view.topAnchor.constraint(equalTo: viewController.topLayoutGuide.bottomAnchor , constant: spacing),
viewController.bottomLayoutGuide.bottomAnchor.constraint(equalTo:viewController.view.bottomAnchor, constant: 0)
])
}
}
else {
if #available(iOS 11.0, *) {
viewController.additionalSafeAreaInsets.top = 0
}
else {
NSLayoutConstraint.activate([
viewController.view.topAnchor.constraint(equalTo: viewController.topLayoutGuide.bottomAnchor, constant: 0)
])
}
}
Я ожидаю, что содержимое будет размещено ниже UILabel.Я неправильно использую topLayoutGuide?Работает ли он только с ограничениями, установленными в Интерфейсном Разработчике?