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

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

约束是比例高度约束。

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

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

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

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

【问题讨论】:

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

标签: ios nslayoutconstraint ios-autolayout


【解决方案1】:

视图的高度将为:

0.58 * parentView.frame.height + 10

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

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

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

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

【讨论】:

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