2017-09-25 46 views
0

只是嘗試使用SnapKit自動佈局添加UILabel。我使用的代碼如下:與SnapKit Autolayout沒有按預期的方式響應

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.view.backgroundColor = .lightGray 

    let userNameLabel = UILabel() 
    userNameLabel.text = "Dinesh nagarajan" 
    userNameLabel.backgroundColor = .white 
    self.view.addSubview(userNameLabel) 

    userNameLabel.snp.makeConstraints { (make) in 
     make.top.leading.trailing.height.equalTo(40) 

    } 
} 

在這裏,我剛纔提到的約束前沿和後沿等於40,但我得到的結果是比代碼不同。我附上了上面代碼的參考圖片。爲什麼它的表現與預期不同?

Constrain mismatch

+0

運行/調試應用程序時,實際的自動佈局約束值是什麼?它被「夾住」在右邊緣,還是延伸過去邊緣?如果您尚未使用Debug View Hierarchy來檢查元素。 – DonMag

+0

@DonMag它裁剪在右邊緣。 –

+0

我不使用SnapKit,但它*看起來像跟蹤約束的問題。如果刪除'.trailing'部分,並添加第二行說:'make.trailing.equalTo(-40)'​​?會發生什麼? – DonMag

回答

0
userNameLabel.snp.makeConstraints { (make) in 
    make.top.leading.trailing.equalTo(view).inset(40) 
    make.height.equalTo(40) 
} 

好像與約束自己的問題。如果你使用插圖進行定位並設置一個明確的高度,它應該會更好一些。

相關問題