如何获得两个锚点之间的距离?

时间:2019-09-10 15:53:03

标签: swift uiview uiviewcontroller layout-anchor

我知道how to get the distance between two points in swift。但是我想知道如何将两个锚点之间的距离作为CGFloat。

例如:我要查找之间的距离

view.topAnchor

button.topAnchor
在这样的视图控制器上

enter image description here

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

1 个答案:

答案 0 :(得分:1)

锚实际上是在构造约束。如果您已经在使用它们,则只需使用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

像这样测量距离。