作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试在创建约束后立即更新 snapkit 约束时,我得到一个Updated constraint could not find existing matching constraint to update
错误。我使用的代码如下:
let directionList = UITableView()
directionList.delegate = self
directionList.dataSource = self
directionList.tag = DIRECTIONS_TABLE_TAG
self.view.addSubview(directionList)
directionList.snp.makeConstraints{ (make) -> Void in
make.width.equalToSuperview()
make.top.equalTo(self.view.snp.bottom)
make.left.equalToSuperview()
make.right.equalToSuperview()
make.bottom.equalToSuperview().offset(-20)
}
directionList.snp.updateConstraints { (make) -> Void in
make.top.equalTo(self.topDarkBlue.snp.bottom)
}
最佳答案
documentation表示 updateConstraints 仅用于更新现有约束的常量。
Alternative if you are only updating the constant value of the constraint you can use the method snp.updateConstraints instead of snp.makeConstraints
您没有更新常量;您正在尝试将约束分配给新的 anchor 。
我认为你应该做的是引用顶部约束:
var topConstraint: Constraint? = nil
...
topConstraint = make.top.equalTo(self.view.snp.bottom)
稍后移除顶部约束:
topConstraint.uninstall()
然后使用另一个 block 来制作新的约束。
directionList.snp.makeConstraints{ (make) -> Void in
make.top.equalTo(self.topDarkBlue.snp.bottom)
}
关于ios - 更新约束不适用于 UITableView snapkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462122/
我是一名优秀的程序员,十分优秀!