Почему размер моего 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 Свойство и инициализировал этот класс, и вот результат (красная полоса), также обратите внимание, что я не использую конструктор интерфейса, все в коде:

0 ответов

Другие вопросы по тегам