如标题所示,我努力寻找一种方法来计算 UIView 之间的垂直距离。 假设我在 View Controller 中有两个按钮。我将如何获得指示 button1 底部和 button2 顶部之间距离的 CGFloat?
最佳答案
正如@lobstah 已经指出的那样,可以通过访问相关 View 的帧来计算差异。
但是,有一个必须考虑的重要细节:如果 View 共享相同的父 View ,这只能以这种简单的方式起作用。因为只有这样,帧才会在同一个坐标空间中表达。
一般的方法没有这个限制,只要 View 是同一 View 层次结构的一部分(不出现在不同的窗口上),和就不会缩放/由仿射变换旋转如下:
func distanceBetween(bottomOf view1: UIView, andTopOf view2: UIView) -> CGFloat {
let frame2 = view1.convert(view2.bounds, from: view2)
return frame2.minY - view1.bounds.maxY
}
如果 view2 的顶部低于 view1 的底部,则距离为正。
关于ios - 我如何获得从一个 UIView 到另一个 UIView 的垂直距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58235154/