与SnapKit Autolayout没有按预期的方式响应

问题描述:

只是尝试使用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

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

好像与约束自己的问题。如果你使用插图进行定位并设置一个明确的高度,它应该会更好一些。