Расширение решения @Alex Шубин в Swift 4, я следующее:
Иногда мне нужно добавить переменное количество ограничений, в этом случае 3, потому что высота будет вычисляться последним.
keyboard.addConstaints(top: nil, right: 0.0, bottom: 0.0, left: 0.0, width: nil, height: nil)
Вы должны быть осторожны, добавляя все необходимое и убедившись, что у вас нет противоречивых ограничений.
extension UIView {
func addConstaints(top: CGFloat?, right: CGFloat?, bottom: CGFloat?, left: CGFloat?, width: CGFloat?, height: CGFloat?) {
translatesAutoresizingMaskIntoConstraints = false
if top != nil { self.addConstaint(top: top!) }
if right != nil { self.addConstaint(right: right!) }
// Add lines for bottom, left, width an heigh
// ...
}
func addConstaint(top offset: CGFloat) {
guard superview != nil else { return }
topAnchor.constraint(equalTo: superview!.topAnchor, constant: offset).isActive = true
}
}
Чтобы убедиться, что все взгляды были непринужденными правильно, вы можете проверить .constraints свойства SuperView или вы можете проверить кадр в:
override func viewDidLayoutSubviews() {
print(keyboard.frame)
}
Хочет увеличить высоту Просмотр по устройству? – iphonic
№ Высота исправления такая же, как у iAd. –
Убедитесь, что вы видите [On iOS, каковы различия между полями, кросс-вставками, вставками содержимого, прямоугольниками выравнивания, краями макета, привязками) (https://stackoverflow.com/questions/37796884/on-ios-what-are -The-различие между ними, наценками краем-вставками-контентом-вставками-а/47614397 # 47614397). Это улучшит ваше понимание полей, якорей, макетов ... – Honey