首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSLayoutAnchor时明确约束

使用NSLayoutAnchor时明确约束
EN

Stack Overflow用户
提问于 2017-04-12 14:13:55
回答 1查看 4.3K关注 0票数 2

我是在没有界面构建器的情况下创建视图的新手。我正在使用NSLayoutAnchors创建视图!

当我使用在视图控制器中创建的视图时,如下所示:

代码语言:javascript
复制
let borderView:UIView = {

    let view = UIView()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.backgroundColor = UIColor.lightGray
    view.isUserInteractionEnabled = false
    view.alpha = 0.5
    return view

}()

然后,我用这一观点,在这样的情况下对某事物加以边框:

代码语言:javascript
复制
view.addSubview(borderView)
borderView.bottomAnchor.constraint(equalTo: headerView.bottomAnchor).isActive = true
borderView.leftAnchor.constraint(equalTo: headerView.leftAnchor).isActive = true
borderView.rightAnchor.constraint(equalTo: headerView.rightAnchor).isActive = true
borderView.heightAnchor.constraint(equalToConstant: 1).isActive = true

然后,在另一种观点中,我尝试这样做:

代码语言:javascript
复制
    informationView.addSubview(borderView)

    borderView.topAnchor.constraint(equalTo: informationView.topAnchor).isActive = true
    borderView.leftAnchor.constraint(equalTo: informationView.leftAnchor).isActive = true
    borderView.rightAnchor.constraint(equalTo: informationView.rightAnchor).isActive = true
    borderView.heightAnchor.constraint(equalToConstant: 1).isActive = true

但是看起来这个视图有它以前的约束,结束显示约束错误!

如何在重用borderView约束之前删除它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-12 14:18:57

您不能重用视图。每个视图只能在视图层次结构中出现一次。您需要为每个想要使用它的视图创建一个新的边缘视图对象。

要回答这个问题,可以使用view.removeConstraints(view.constraints)从视图中删除约束

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43372093

复制
相关文章

相似问题

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