如何找到比例约束的最终值

Posted

技术标签:

【中文标题】如何找到比例约束的最终值【英文标题】:How to find final value of proportional constraint 【发布时间】:2017-09-12 09:51:41 【问题描述】:

我有一个限制来设置视图的高度。

约束是比例高度约束。

我想使用我想知道视图高度的约束来计算高度。

有什么 API 可以做到这一点吗?

我知道我也可以使用公式自己手动找到它,但我不想这样做

假设高度约束是父视图的 58%,它的常量值为 10,那么约束分配给视图的总高度是多少

【问题讨论】:

不清楚你在这里问什么 我想知道比例约束产生的高度值 在约束更新后读取相关视图的frame 属性。你需要重写 UIViewcontroller 的方法来捕捉我认为的时间。 哦好吧..我应该在哪里覆盖? 【参考方案1】:

视图的高度将为:

0.58 * parentView.frame.height + 10

在自动布局运行之前,父视图的高度不会建立,因此如果您要进行此计算,您将在 viewDidLayoutSubviews 的覆盖中进行。

由于您对自己计算不感兴趣,您可以在自动布局应用约束后运行的 viewDidLayoutSubviews 覆盖中简单地读取视图的最终帧高度。

override func viewDidLayoutSubviews() 
    super.viewDidLayoutSubviews()

    // read final view size here
    print(myView.frame.height)

【讨论】:

基本上我想更新一些 UI 约束......所以如果我这样做......它会触发无休止的循环调用 您要更新的约束是什么?也许有一种方法可以编写它,以便自动布局为您完成工作。 基本上我有一个内部有多个视图的视图...根据父视图大小内部视图的可见性来决定。所以我想决定尺寸?

以上是关于如何找到比例约束的最终值的主要内容,如果未能解决你的问题,请参考以下文章

如何允许最终用户在特定安全约束下在 JEE 环境中运行脚本?

如何获取同一张表中不同类别的布尔值的比例

更改单行值时保持总和约束行的比例

更改单行值时保持总和约束行的比例

自动布局比例间距

iOS 约束。如何通过约束设置图像视图高度比率等于图像比率?