Увеличение высоты UIView.frame программно работает до iPhone 8 плюс, но не работает за пределами модели iphone x - PullRequest
0 голосов
/ 20 января 2019

Я увеличиваю высоту для UIView программно во время выполнения по нажатию кнопки, он отлично работает на моделях iPhone 6,7,8 и более, но не работает на iPhone X и более поздних моделях. Первоначально я установил ограничения программно, поскольку я представления основаны на autoLayout. Я также пытался установить ограничения во время выполнения, что тоже не помогло.

//Tried this and working till iPhone 8+
self.view.frame.size.height += CGFloat(280)
//or
self.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, 
height: self.view.frame.height + 20.0)

//Tried setting height constraint
self.view.autoSetDimension(.height, toSize: 270)

1 Ответ

0 голосов
/ 21 января 2019

Отладка иерархии представления и поиск конфликтующих ограничений, которые могут помешать вашему ограничению высоты.Также убедитесь, что для translatesAutoresizingMaskIntoConstraints задано значение false, если вы устанавливаете ограничения в коде.

Также: если вы устанавливаете свое ограничение в коде (очевидно, вы используете PureLayout), этот метод возвращает ссылку на это ограничение высоты.Поэтому, если вы хотите изменить его, вам нужно обновить постоянное значение вашего ограничения, а не устанавливать новое.

Для получения дополнительной помощи вам, безусловно, необходимо предоставить дополнительную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...