2016-03-25 30 views
0

我試圖讓視覺格式語言在swift中工作,但我無法讓它與一個簡單的例子一起工作。我試圖讓標籤顯示在除左上角以外的其他地方。這是現在它的顯示方式:Swift視覺格式語言不起作用

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完成了!添加它作爲答案,我會將其標記爲已接受。泰! – Fredrik

回答

1

您需要添加label.translatesAutoresizingMaskIntoConstraints = false

沒有這一點,當執行layoutSubviews標籤的自動尺寸面具被轉化成約束。布爾值僅適用於視圖而不適用於其子視圖。

相關問題