IOS: программно изменить ограничение высоты UIView
Интересно, есть ли способ программно получить ограничение высоты определенного UIView
и изменить его значение в коде? У меня есть ситуация, когда у меня есть несколько UIViews
с четырьмя ребрами, прикрепленными к ограничениям между IB и высотой (IB жалуется, если я этого не сделал), но в середине программы мне нужно было бы изменить высоту UIViews
и вызывать отклонение UIViews
вниз в представлении.
Я знаю, что я могу ctrl + перетащить ограничения высоты каждого UIViews
и изменить их значения в коде, но для этого мне потребуется проложить несколько десятков из них. Поэтому я считаю, что это неэффективно и не масштабируется в некотором роде.
Итак, я задаюсь вопросом, есть ли способ полностью восстановить ограничения высоты определенного вида через код и изменить его динамически?
Спасибо!
Ответы
Ответ 1
Вы можете связать это конкретное ограничение с вашим кодом из конструктора интерфейса, например
![enter image description here]()
И NSLayoutConstraint
имеет свойство константы, которое является вашим постоянным значением значка.
Если вы добавляете свои ограничения программно, вы можете, несомненно, воспользоваться свойством идентификатора в классе NSLayoutConstraint
. Установите их и проведите по ним, чтобы получить это конкретное опознаваемое ограничение.
Как говорится в документации
extension NSLayoutConstraint {
/* For ease in debugging, name a constraint by setting its identifier, which will be printed in the constraint description.
Identifiers starting with UI and NS are reserved by the system.
*/
@availability(iOS, introduced=7.0)
var identifier: String?
}
Ответ 2
Сначала добавьте ограничение высоты в ваш файл .h
:
//Add Outlet
IBOutlet NSLayoutConstraint *ViewHeightConstraint;
Затем добавьте приведенный ниже код в файл .m
:
//Set Value From Here
ViewHeightConstraint.constant = 100;