1
我有一个嵌套在UIStackView
中的嵌套在UIView
中的UIButton
。从嵌套的UIView中获取帧
我给它的限制,但是,当我
print(helloButton.frame)
的CGRect
输出比屏幕上显示的内容不同的值。
值得注意的是坐标关闭。
这是有原因吗?我如何准确获得UIButton
框架?
我有一个嵌套在UIStackView
中的嵌套在UIView
中的UIButton
。从嵌套的UIView中获取帧
我给它的限制,但是,当我
print(helloButton.frame)
的CGRect
输出比屏幕上显示的内容不同的值。
值得注意的是坐标关闭。
这是有原因吗?我如何准确获得UIButton
框架?
回答我的问题。 CGRect在任何时候的坐标原点都基于它的来源,其中包含UIView
,而不是应用程序的看法。
为了获得基于应用程序的来源(绝对左上角)的坐标我这样做:
在斯威夫特:
let absoluteFrame = myView.convertRect(myView.frame, toView: nil)
您还应该在'viewDidLayoutSubviews'中进行此转换,而不是'viewDidAppear'(布局可能没有在'viewDidAppear'中完成) –
你得到你的布局警告自己无法满足约束? – Ares
@Ares不,我不会 –
@Ares我添加了一张照片,看看。它很容易重现 –