Xcode 添加重复约束?

Posted

技术标签:

【中文标题】Xcode 添加重复约束?【英文标题】:Xcode adds duplicate constraints? 【发布时间】:2016-11-17 16:01:37 【问题描述】:

在代码中,我添加了 4 个约束。但是当我在 UI 调试器中运行应用程序时,它会显示额外的 6 个约束?我添加的这4个应该很清楚。我不知道我做错了什么?

let leftConstr   = NSLayoutConstraint(item: image, attribute: .leading, relatedBy: .equal, toItem: cell.contentView, attribute: .leading, multiplier: 1.0, constant: 0.0)
let bottomConstr = NSLayoutConstraint(item: image, attribute: .bottom, relatedBy: .equal, toItem: cell.contentView , attribute: .bottom, multiplier: 1.0, constant: 0.0)
let highthConstr = NSLayoutConstraint(item: image, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 15)
let widthConstr  = NSLayoutConstraint(item: image, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 50)
cell.contentView.addConstraints([highthConstr, widthConstr, bottomConstr, leftConstr])

这是我的 UI 调试器的屏幕截图

【问题讨论】:

我也看到了这种情况。如果我尝试以编程方式设置约束,它似乎会自动生成我没有创建的约束以使场景正常工作。也许“translatesAutoresizingMaskIntoConstraints”就是这样做的。 【参考方案1】:

也许你可以尝试在之前添加这行代码:

image.translatesAutoresizingMaskIntoConstraints = false

【讨论】:

这就是解决方案!谢谢@Matthias

以上是关于Xcode 添加重复约束?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode - 向 UITableView 添加约束,使其适合所有屏幕尺寸

在 Xcode 6 中添加约束以查看

在 Interface Builder 中添加约束时 Xcode 无限期挂起

当我使用自动布局移动视图时,为啥 XCode 5 没有在情节提要中添加约束

在 Xcode 中,如何重命名 Storyboard 中的约束?

带有约束的滚动视图自动布局问题 xcode 8