1

我知道如何快速获得两点之间的距离。但我想知道如何将两个锚点之间的距离作为 CGFloat。

例如:我想找到两者之间的距离

view.topAnchor

button.topAnchor

在这样的视图控制器上: 在此处输入图像描述

我猜我将不得不获得锚的 CGPoint(然后我可以找到 CGPoint 的 y 点之间的差异)。我只是不知道该怎么做。

4

1 回答 1

2

锚点实际上是用来构造约束的。如果您已经在使用它们,则只需使用 constraint.constant 属性即可获取值。像这样,

let view = UIView()
let button = UIButton()
view.addSubview(button)

let heightConstraint = button.topAnchor.constraint(equalTo: view.topAnchor)
heightConstraint.isActive = true
view.layoutIfNeeded() // update incase still not updated
print(heightConstraint.constant)

但我认为你真正想要实现的是,

let distance = button.frame.minY - view.frame.minY

像这样测量距离。

于 2019-09-10T16:16:32.867 回答