/ / iOS добавят множител, за да ограничи програмно - ios, object-c, autolayout

iOS добавете мултипликатор за ограничаване на програмирането - ios, objective-c, autolayout

Как да настроите множител да ограничи програмно?

CGFloat multiplier;

Как мога да добавя този множител към моето ограничение?

Отговори:

2 за отговор № 1

Не можете да променяте Множителя след като ограничението есъздаден, защото неговата readonly собственост, можете да актуализирате Константно въпреки че (можете да опитате да изчислите константата сами), но ако това не е така и наистина трябва да промените множителя, предлагам да създадете ново ограничение с актуализирания Multiplier и да премахнете стария един

NSLayoutConstraint *oldConstraint = YOUR_CURRENT_CONSTRAINT;
NSLayoutConstraint *newConstraint = [NSLayoutConstraint constraintWithItem:oldConstraint.firstItem
attribute:oldConstraint.firstAttribute
relatedBy:oldConstraint.relation
toItem:oldConstraint.secondItem
attribute:oldConstraint.secondAttribute
multiplier:NEW_MULTIPLIER
constant:oldConstraint.constant];

[YOUR_VIEW_THAT_HOLDS_CONSTRAINT removeConstraint:oldConstraint];
[YOUR_VIEW_THAT_HOLDS_CONSTRAINT addConstraint:newConstraint];

1 за отговор № 2

Множителят се чете само, очевидно можете да го настроите само когато създавате ограничението. Но можете да зададете постоянна стойност по всяко време, можете да го използвате вместо това за повечето цели.

constraint.constant = 50;

Ако сте създали ограничението в IB, трябва да създадете IBOutlet за него.


0 за отговор № 3

Най- multiplier собственост е само за четене. Трябва да премахнете стария NSLayoutConstraint и да го замените с нов, за да го промените.

Въпреки това, тъй като знаете, че искате да промените множителя, можете просто да промените константата, като го умножите сами, когато са необходими промени, които често са по-малко код.