首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查视图内部是否已经存在约束?

如何检查视图内部是否已经存在约束?
EN

Stack Overflow用户
提问于 2015-04-09 16:49:25
回答 3查看 4.3K关注 0票数 5

我对我的tableView使用了自动布局,对于其中的每个单元格,我以编程的方式创建了一些约束。

为了避免每次都删除所有的约束,我想知道是否有一种方法可以循环view.constraints(),如果有H:|-view-|这样的约束,我就删除它。

有可能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-09 20:44:09

您需要使用变量(或数组)来保存那些与您想要的约束相匹配的约束,然后循环view.constraints()以删除它们。使用可视化格式时,您创建的任何内容都会转换为多个约束。

使用的另一种方法是遍历约束并检查约束属性,如firstItem和secondItem、关系等,以匹配您想要的内容。

票数 5
EN

Stack Overflow用户

发布于 2020-03-06 23:43:09

下面是我检查控件是否已经有宽度或高度约束的方法(Swift 5.1):

代码语言:javascript
复制
debugPrint(btn.constraints.contains(where: { (item) -> Bool in
    return item.firstAttribute.rawValue == NSLayoutConstraint.Attribute.width.rawValue;
    }))
debugPrint(btn.constraints.contains(where: { (item) -> Bool in
    return item.firstAttribute.rawValue == NSLayoutConstraint.Attribute.height.rawValue;
    }))
票数 1
EN

Stack Overflow用户

发布于 2018-07-25 15:37:15

不需要循环约束。这应该是可行的:

代码语言:javascript
复制
toRemove = NSLayoutConstraint.constraints(withVisualFormat: "H:|-view-|",
                                                       options: [],
                                                       metrics: nil,
                                                         views: ["view": yourView])
viewWithConstraints.removeConstraints(toRemove)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29533883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档