Почему размер моего inputAccessoryView не изменяется должным образом на iPhone с индикатором "Домой"?
У меня есть обычай inputAccessoryView
класс, который отображает небольшой баннер в нижней части чата. Он имеет фиксированную высоту 58pt и 1 этикетку внутри. Почему он не изменен должным образом для iPhone, у которых есть домашний индикатор?
Вот мой пользовательский класс:
class Banner: UIView {}
Вот инициализация:
init(message: String?) {
let frame = CGRect(origin: .zero, size: CGSize(width: UIScreen.main.bounds.width, height: 58))
super.init(frame: frame)
setupSubviews()
autoresizingMask = .flexibleHeight
}
Вот функция setupSubviews:
private func setupSubviews() {
backgroundColor = .red
// Message label
addSubview(messageLabel)
messageLabel.text = "Example message"
messageLabel.translatesAutoresizingMaskIntoConstraints = false
messageLabel.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 15).isActive = true
messageLabel.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -15).isActive = true
if #available(iOS 11.0, *) {
messageLabel.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 20).isActive = true
messageLabel.bottomAnchor.constraint(equalTo: safeAreaLayoutGuide.bottomAnchor, constant: 20).isActive = true
} else {
messageLabel.topAnchor.constraint(equalTo: topAnchor, constant: 20).isActive = true
messageLabel.bottomAnchor.constraint(equalTo: bottomAnchor, constant: 20).isActive = true
}
}
Обратите внимание, что в UICollectionViewController
я переопределил inputAccessoryView
Свойство и инициализировал этот класс, и вот результат (красная полоса), также обратите внимание, что я не использую конструктор интерфейса, все в коде: