изменить высоту просмотров в расширении клавиатуры (iPhone X) - PullRequest
0 голосов
/ 31 августа 2018

У меня следующая проблема: я строю расширение клавиатуры, альтернативное клавиатуре системы. На всех старых моделях iPhone это работает нормально, но на iPhone X это не так. Моя проблема в том, что высота обзора клавиатуры уменьшается с 216 пикселей (iPhone 8, 8+, ...) до 141 пикселей (iPhone X). Поскольку меньшая высота, мои кнопки на клавиатуре теперь меньше или меньше для удобства использования.

Я использовал файл .xib для создания пользовательского интерфейса, я добавляю все элементы пользовательского интерфейса программным способом.

iPhone 8 iPhone X

мой вопрос

Возможно ли получить больше места (высоты) для вида расширения клавиатуры (особенно для iPhone X)?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Добавление ограничений к методу ViewDidLoad решает проблему.

override func viewDidLoad() {
        super.viewDidLoad()
        let heightConstraint = NSLayoutConstraint(item: self.view, attribute: NSLayoutAttribute.height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 0.0, constant: 220)
        self.view.addConstraint(heightConstraint)
        setupKeyboard()

Примечание. При создании подпредставления генерируется предупреждение о памяти.

0 голосов
/ 01 сентября 2018

Я решаю свою проблему. Я нашел следующий абзац в документации Apple :

Вы можете отрегулировать высоту основного вида вашей пользовательской клавиатуры, используя Auto Layout. По умолчанию размер настраиваемой клавиатуры соответствует системной клавиатуре в соответствии с размером экрана и ориентацией устройства. Ширина пользовательской клавиатуры всегда устанавливается системой равной текущей ширине экрана. Чтобы настроить высоту пользовательской клавиатуры, измените ограничение высоты основного вида.

Следующие строки кода показывают, как вы можете определить и добавить такое ограничение:

CGFloat _expandedHeight = 500;
NSLayoutConstraint *_heightConstraint = 
    [NSLayoutConstraint constraintWithItem: self.view 
                                 attribute: NSLayoutAttributeHeight 
                                 relatedBy: NSLayoutRelationEqual 
                                    toItem: nil 
                                 attribute: NSLayoutAttributeNotAnAttribute 
                                multiplier: 0.0 
                                  constant: _expandedHeight];
[self.view addConstraint: _heightConstraint];

Swift 4

override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        let heightConstraint = NSLayoutConstraint(item: self.view, attribute: NSLayoutAttribute.height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 0.0, constant: 300)
        self.view.addConstraint(heightConstraint)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...