IOS - Измените множитель ограничения на Swift Как изменить множитель ограничения с помощью Swift. someConstraint.multiplier = 0.6 // error: 'multiplier' is get-only property Я хотел бы знать, как изменить множитель в коде (Swift). Ответ 1 Поскольку multiplier доступен только для чтения, и вы не можете его изменить, вам нужно заменить ограничение на его модифицированный клон. Вы можете написать расширение для этого, например: Свифт 4/5: extension NSLayoutConstraint { func constraintWithMultiplier(_ multiplier: CGFloat) -> NSLayoutConstraint { return NSLayoutConstraint(item: self.firstItem!, attribute: self.firstAttribute, relatedBy: self.relation, toItem: self.secondItem, attribute: self.secondAttribute, multiplier: multiplier, constant: self.constant) } } Использование: let newConstraint = constraintToChange.constraintWithMultiplier(0.75) view.removeConstraint(constraintToChange) view.addConstraint(newConstraint) view.layoutIfNeeded() constraintToChange = newConstraint
Ответ 1 Поскольку multiplier доступен только для чтения, и вы не можете его изменить, вам нужно заменить ограничение на его модифицированный клон. Вы можете написать расширение для этого, например: Свифт 4/5: extension NSLayoutConstraint { func constraintWithMultiplier(_ multiplier: CGFloat) -> NSLayoutConstraint { return NSLayoutConstraint(item: self.firstItem!, attribute: self.firstAttribute, relatedBy: self.relation, toItem: self.secondItem, attribute: self.secondAttribute, multiplier: multiplier, constant: self.constant) } } Использование: let newConstraint = constraintToChange.constraintWithMultiplier(0.75) view.removeConstraint(constraintToChange) view.addConstraint(newConstraint) view.layoutIfNeeded() constraintToChange = newConstraint