Как программно переопределить свойство высоты раскадровки UIView - PullRequest
1 голос
/ 15 апреля 2020

Я поместил маленький UIView в свой viewController и установил его constraints влево, вправо и вниз. Чтобы не получить constraint error, я также должен добавить высоту. Я не хочу сохранять эту высоту, хотя, поскольку я хотел бы, чтобы она была динамически установлена ​​в ее viewController как это:

bottomBar.frame.size.height = self.view.frame.height / 10

Я думал, что это будет override значение constraint I установить в storyBoard, но это не работает. Я установил его на / 2, чтобы посмотреть, что произойдет, но он все еще сохраняет значение storyboard. Как мне override это?

Ответы [ 3 ]

1 голос
/ 15 апреля 2020

Вы можете создать соединение IBOutlet из того ограничения, которое вы добавили в раскадровку к ViewController. Например, на изображении ниже: Showing how to add IBOutlet for constraint

После подключения вы можете сделать следующее:

self.newlyAddedConstraint.constant = self.view.frame.height / 10;

Это все. Ваш рост будет отрегулирован. В зависимости от того, где вы устанавливаете эту константу, вам также может понадобиться вызвать

[self.view layoutIfNeeded]
1 голос
/ 15 апреля 2020

Вы можете связать ограничение высоты раскадровки с торговой точкой:

@IBOutlet var heightConstraint: NSLayoutConstraint!

, затем вы можете изменить его:

heightConstraint.constant = 100
0 голосов
/ 15 апреля 2020

Вы можете удалить ограничение раскадровки во время сборки. Просто выберите необходимое ограничение и выберите «Удалить во время сборки».

...