Размер Классы
Установленная относится к установке размера классов, не активного/неактивными.
Вы должны создать другое ограничение программно и активировать/деактивировать , что. Это связано с тем, что вы не можете изменить множитель ограничения (Can i change multiplier property for NSLayoutConstraint?), и вы не можете возиться с классами размера (activateConstraints: and deactivateConstraints: not persisting after rotation for constraints created in IB).
Существует несколько способов сделать это. В приведенном ниже примере я создаю копию вашего ограничения x1 с умножителем или 1/2. Затем я переключаться между ними:
@IBOutlet var fullWidthConstraint: NSLayoutConstraint!
var halfWidthConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
halfWidthConstraint = NSLayoutConstraint(item: fullWidthConstraint.firstItem,
attribute: fullWidthConstraint.firstAttribute,
relatedBy: fullWidthConstraint.relation,
toItem: fullWidthConstraint.secondItem,
attribute: fullWidthConstraint.secondAttribute,
multiplier: 0.5,
constant: fullWidthConstraint.constant)
halfWidthConstraint.priority = fullWidthConstraint.priority
}
@IBAction func changeConstraintAction(sender: UISwitch) {
if sender.on {
NSLayoutConstraint.deactivateConstraints([fullWidthConstraint])
NSLayoutConstraint.activateConstraints([halfWidthConstraint])
} else {
NSLayoutConstraint.deactivateConstraints([halfWidthConstraint])
NSLayoutConstraint.activateConstraints([fullWidthConstraint])
}
}
Проверено на прошивкой 9+, Xcode 7+.
Вы используете раскадровку? Это похоже на поведение классов. – kedzia
Да, я использую раскадровку, но ограничения включены для всех классов размеров. У меня нет какой-либо конкретной конфигурации размера. – Salah
Я бы постарался установить их так, как вы хотите, чтобы они были для повернутого класса размера – kedzia