2016-03-25 2 views
0

Я пытаюсь заставить язык Visual Format работать быстро, но я просто не могу заставить его работать с простым примером. Я пытаюсь заставить ярлык отображаться где-то еще, кроме левого верхнего угла. Вот как это показывает сейчас:Язык Swift Visual Format Не работает

Test

И это мой код:

override func viewDidLoad() { 
     super.viewDidLoad() 

     let label = UILabel() 
     label.text = "Label 1" 
     label.sizeToFit() 

     self.view.addSubview(label) 
     self.view.translatesAutoresizingMaskIntoConstraints = false 

     let views = Dictionary(dictionaryLiteral: ("label", label)) 

     let horizontalConstraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|-30-[label]-|", 
      options: [], 
      metrics: nil, 
      views: views) 

     self.view.addConstraints(horizontalConstraints) 

     let verticalConstraints = NSLayoutConstraint.constraintsWithVisualFormat("V:|-30-[label]-|", 
      options: [], 
      metrics: nil, 
      views: views) 

     self.view.addConstraints(verticalConstraints) 
} 

Может кто-нибудь увидеть, что это не так?

+1

Попробуйте добавить 'label.translatesAutoresizingMaskIntoConstraints = false', чтобы метка отключила эту опцию. Получается ли какой-либо журнал времени выполнения, если некоторые ограничения не могут быть выполнены? – tomahh

+0

@tomahh Вот и все! Добавьте его в качестве ответа, и я помечаю его как принятый. Ty! – Fredrik

ответ

1

Вам нужно добавить label.translatesAutoresizingMaskIntoConstraints = false

Без этого, маска автоматического изменения лейбла превращается в ограничения, когда layoutSubviews выполняется. Логическое значение относится только к представлению, а не к его подзонам.