Я установил следующее ограничение программно на UISwitch, который был установлен в качестве IBOutlet:X Позиция Constraint Не Обновление Программным - Swift в Xcode
func setConstraints {
let leadingConstraintTimeSwitch1 = NSLayoutConstraint(item: timeSwitch, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: timeLabel, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 10)
view.addConstraint(leadingConstraintTimeSwitch1)
Всякий раз, когда я изменить константу этого ограничения, положение Х переключатель остается тем же. Однако, когда я перехожу к Инспектору размеров коммутатора и изменяю его значение X, позиция переключателя делает правильно, но я не хочу использовать Size Inspector. Как я могу заставить программный набор ограничений переопределить значение X в инспекторе размеров? Я также добавил ограничение, определяющее позицию Y переключателя (нижнее ограничение), и этот делает работы. Благодаря!
'timeSwitch' и' timeLabel' являются частью иерархии представлений, я задал 'translatesAutoresizingMaskIntoConstraints' значение false, и у меня есть много других объектов с ограничениями, которые работают полностью нормально. Я не вижу, как могут быть другие ограничения, которые могут повлиять на него. Как я уже сказал, в инспекторе размеров, когда я изменяю значение X, переключатель переключается на позицию этого значения X, но программное ограничение не отменяет этого. Благодаря! –
как вы меняете константу? – Scriptable
Изменяя константу в 'let leadingConstraintTimeSwitch1 = NSLayoutConstraint (item: timeSwitch, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: timeLabel, атрибут: NSLayoutAttribute.Trailing, multiplier: 1, constant: 10)' @Scriptable –