加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 有没有办法在Interface Builder中的自动布局约束中添加标

发布时间:2020-12-15 02:01:24 所属栏目:百科 来源:网络整理
导读:在Interface Builder中进行一些可视化布局之后,我创建了一些我想在运行时访问的约束。有没有办法在Interface Builder中标记或识别限制,以便稍后查询? 我想这样做的原因是我需要根据视觉指定的约束来执行一些计算。我知道苹果提供了Visual Format Language
在Interface Builder中进行一些可视化布局之后,我创建了一些我想在运行时访问的约束。有没有办法在Interface Builder中标记或识别限制,以便稍后查询?

我想这样做的原因是我需要根据视觉指定的约束来执行一些计算。我知道苹果提供了Visual Format Language,我可以在控制器中以编程方式指定约束。我不是用这种方法,所以我不会失去IB的设计时间反馈。

编辑

做一个参考插座做了工作,但问题仍然存在。

解决方法

是的,可以做到这一点。 NSLayoutConstraint具有称为标识符的属性,可以在Interface Builder中公开并分配。为了演示这个,我创建了一个单视图应用程序,它有一个单独的子视图是一个红色框。此子视图具有4个约束:宽度,高度,水平居中在容器中,垂直居中集中。我通过执行以下操作给宽度约束标识符redBoxWidth:

>单击文档布局视图中的宽度约束。然后在Identity Inspector的“用户定义的运行时属性”下,单击“密钥路径”下的。将keyPath更改为标识符,将类型布尔值更改为字符串,并将值设置为redBoxWidth。

???
>然后在ViewDidLoad中,可以通过名称查找约束并更改其值:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        for subview in view.subviews as [UIView] {
            for constraint in subview.constraints() as [NSLayoutConstraint] {
                if constraint.identifier == "redBoxWidth" {
                    constraint.constant = 300
                }
            }
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读