ios - removeConstraint() 不删除约束

标签 ios swift nslayoutconstraint

我有一个奇怪的问题。我想在某些条件下更改约束,但 removeConstraint 不起作用。约束不会被删除。

代码如下:

backButton.translatesAutoresizingMaskIntoConstraints = false
view.removeConstraint(constLabelTop)
let constNew = NSLayoutConstraint(item: label, attribute: .CenterY, relatedBy: .Equal, toItem: backButton, attribute: .CenterY,multiplier: 1, constant: 0)
view.addConstraint(constNew)

约束 constLabelTop 是将 label 的顶部设置在 backButton 上方几个点的约束。为什么它不起作用?

新约束与旧约束冲突,backButton 被压扁。

我也试过 backButton.removeConstraint 也没有用。

最佳答案

试试这个:

backButton.translatesAutoresizingMaskIntoConstraints = false
constLabelTop.active = false
NSLayoutConstraint(item: label, attribute: .CenterY, relatedBy: .Equal, toItem: backButton, attribute: .CenterY,multiplier: 1, constant: 0).active = true
self.view.layoutIfNeeded()

关于ios - removeConstraint() 不删除约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169823/

相关文章:

objective-c - 如何在堆栈 View 中设置容器的高度?

iOS:如何在代码中的表格单元格中为文本字段添加约束

ios - 如何向 UICollectionViewCell 内的标签添加约束?

ios - 设置标签的文本会导致堆栈 View 布局问题

objective-c - 如何向 "hidden"类添加类别

HTML 在 iPhone (iOS) 上上传 : filename is always same (image. jpg, image.png, ...)

ios - 在 Swift 中获取 UIBarButtonItem 的框架?

swift - 在 swift 中使用静态 C 库,找不到模块

ios - iOS 自动更新订阅的问题是在没有共享 key 的情况下在 appstore 中发布的

ios - Xcode/swift : No such module 'GeoFire'