Swift 3:获取按钮到屏幕底部的距离

Mic*_*ael 2 storyboard ios swift

我想让一个按钮到Swift 3屏幕底部的距离。

当我查看距离(alt键)时,我可以在情节提要中看到正确的值,但是很遗憾,我无法手动计算它。

我正在寻找的值与按钮​​的“垂直间距到底部布局”约束中的常数相同。

view.frame.maxY - randomButton.frame.maxY
Run Code Online (Sandbox Code Playgroud)

给我的价值太高了。

小智 7

view.frame.size.height - (button.frame.size.height + button.frame.origin.y)
Run Code Online (Sandbox Code Playgroud)

我认为还可以!希望能帮助到你


小智 7

如果您的按钮不是视图控制器视图的直接继承者(又名,层次结构类似于ViewController的View-> SomeOtherView-> Button),则仅使用框架就无法获得正确的数学结果。您将不得不将按钮的Y位置平移到窗口对象或视图控制器主视图的坐标空间。

看一下这个问题:将UIView原点转换为其窗口坐标系

let realOrigin = someView.convert(button.frame.origin, to: self.view)
Run Code Online (Sandbox Code Playgroud)

然后应用Lucas Palaian建议的数学。

let bottomSpace = view.frame.maxY - (button.frame.height + realOrigin.y)
Run Code Online (Sandbox Code Playgroud)

如果确实发生了一些疯狂的事情,另一种解决方法是拖放按钮底部约束的出口。(从Interface Builder中的视图层次结构中选择约束,按住控制键并将约束拖动到视图控制器。)然后,在代码中可以访问常量。

let bottomSpace = myButtonBottomConstraint.constant
Run Code Online (Sandbox Code Playgroud)