Я генерирую KeyboardView
, который скользит вверх по вертикали, а затем занимает нижнюю треть представления, который используется для его генерации:
class KeyboardView: UIView {
private var width: CGFloat!
private var height: CGFloat!
init(withinView view: UIView) {
super.init(frame: view.frame)
configureKeyboard()
}
private func configureKeyboard() {
width = frame.width
height = frame.height * 0.33
center = CGPoint(x: width / 2, y: frame.height - halfHeight)
let origin = CGPoint(x: center.x - halfWidth, y: (center.y - halfHeight) + height)
let size = CGSize(width: width, height: height)
frame = CGRect(origin: origin, size: size)
isUserInteractionEnabled = true
}
}
Затем я добавляю клавиши этой клавиатурыкак UIButton
экземпляров после вызова метода configureKeyboard
.
Однако , при запуске этого кода, скажем, на iPhoneX, клавиши этой клавиатуры не находятся в пределахназывается безопасной областью экрана iPhone.
Нужно ли настраивать значение frame.origin
для размещения нижней вставки?то есть
frame.origin.y += UIApplication.shared.keyWindow?.safeAreaInsets.bottom ?? 0.0
или есть другой способ достичь этого программно?
Спасибо за любую помощь, все еще приспосабливаясь к использованию автоматического макета.