Подтвердить что ты не робот

IOS: программно изменить ограничение высоты UIView

Интересно, есть ли способ программно получить ограничение высоты определенного UIView и изменить его значение в коде? У меня есть ситуация, когда у меня есть несколько UIViews с четырьмя ребрами, прикрепленными к ограничениям между IB и высотой (IB жалуется, если я этого не сделал), но в середине программы мне нужно было бы изменить высоту UIViews и вызывать отклонение UIViews вниз в представлении.

Я знаю, что я могу ctrl + перетащить ограничения высоты каждого UIViews и изменить их значения в коде, но для этого мне потребуется проложить несколько десятков из них. Поэтому я считаю, что это неэффективно и не масштабируется в некотором роде.

Итак, я задаюсь вопросом, есть ли способ полностью восстановить ограничения высоты определенного вида через код и изменить его динамически?

Спасибо!

4b9b3361

Ответ 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;