2017-01-19 6 views
0

EDIT: Кажется, мне нужно изменить множитель, а не константу.простая программная модификация одного ограничения IB, не обновляющегося

Я пытаюсь программно изменить ширину кнопки вне viewDidLoad (если это имеет значение) после определенного события.

Я установил ширину кнопок в IB, чтобы она соответствовала ширине представлений.

Я создал выход IB для кнопок ширины ограничения:

@IBOutlet weak var imageButtonWidth: NSLayoutConstraint! 

Тогда я попытался:

imageButtonWidth.constant = 0.49 
    view.setNeedsLayout() 

,

imageButtonWidth.constant = 0.49 
    view.layoutIfNeeded() 

и

imageButtonWidth.constant = 0.49 
    self.view.updateConstraints() 

Я установил точку останова в файле imageButtonWidth.constant = 0.49, и это приведет к сбою приложения, поэтому я знаю, что его «побежал» он просто не активируется правильно.

Я использовал

imageButtonWidth.constant = 0.49 
    self.view.updateConstraints() 

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

любой совет был бы благодарен!

+0

Константа ширины 0,49 даст вам кнопку шириной менее одной точки. Вы уверены, что это правильное значение? Вы видите какие-либо ошибки ограничения в консоли? – jrturton

+0

No theres no error. его немного меньше половины обзора, где полная равная ширина кнопки для просмотра будет постоянной 1. Спасибо за ответ! – genericguy25

+0

Думаете, вы ошибаетесь с константой с множителем. Вы не можете изменить множитель. – jrturton

ответ

0

Правильный способ сделать это с

self.view.layoutIfNeeded() 

обновить ограничение, но вы, вероятно, связано с неправильно выход, кажется, так как значение ограничения, кажется низким.

+0

ах вау, я просто оглянулся на свою IB, мне действительно нужно изменить множитель, а не константу. но похоже, что множитель читается только. – genericguy25

+0

круто, поэтому, если вам удастся решить вашу проблему, вы должны ответить на свой вопрос, чтобы другие могли увидеть решение. Если нет ... то, как вы меняете ограничения, - это играть с константой и определить ее новое значение, а затем запустить self.view.layoutIfNeeded() – John