Swift 如何避免指定潜在冲突的约束

Swift 如何避免指定潜在冲突的约束,swift,ios-autolayout,uistackview,Swift,Ios Autolayout,Uistackview,我正在尝试以编程方式在我的UICollectionViewCell中创建所有视图。视图当前布局正确 我有一个垂直stackView,其中包含两个ui标签和一个ui图像视图 这些视图没有固定的内容大小,并且都是可变的 如果您在我的代码中看到,我正在设置我的UIStackView的前导和尾随约束,从安全区域布局指南中取常数8.0。因此,我必须将widthAnchor设置为-16.0(否则单元格布局不正确)。我有没有办法避免在两个地方指定这一点?例如,如果我将前导设置为与前导相比的14.0点,那么我必

我正在尝试以编程方式在我的
UICollectionViewCell
中创建所有视图。视图当前布局正确

我有一个垂直
stackView
,其中包含两个
ui标签
和一个
ui图像视图

这些视图没有固定的内容大小,并且都是可变的

如果您在我的代码中看到,我正在设置我的
UIStackView
前导
尾随
约束,从
安全区域布局指南
中取常数8.0。因此,我必须将
widthAnchor
设置为-16.0(否则单元格布局不正确)。我有没有办法避免在两个地方指定这一点?例如,如果我将
前导
设置为与
前导
相比的14.0点,那么我必须确保我记得将宽度更改为-20.0,否则内容将溢出

override func updateConstraints() {
    /// Check if views already have constraints
    if !viewsHaveConstraints {
        viewsHaveConstraints = true


        /* 
        Here I set the hugging and compression priority for the 3 views in the UIStackView
        */


        let margins = safeAreaLayoutGuide

        /*  Set vstackView constraints */

        /// vStackView width anchor equal to width of margin less constant
        vStackView.widthAnchor.constraint(equalTo: margins.widthAnchor, constant: -16.0).isActive = true

        /// vStackView leading anchor constraint
        vStackView.leadingAnchor.constraint(equalTo: margins.leadingAnchor, constant: 8.0).isActive = true

        /// vStackView trailing anchor constraint
        vStackView.trailingAnchor.constraint(equalTo: margins.trailingAnchor, constant: 8.0).isActive = true

        vStackView.heightAnchor.constraint(equalTo: margins.heightAnchor).isActive = true
    }
    super.updateConstraints()
}

如果对前导锚点和尾随锚点有约束,那么宽度约束是多余的,只需删除它即可。@dan你是对的。我可以通过不添加多余的约束来避免冲突:p谢谢。如果你想提交答案,我会接受的