2015-12-15 63 views
1

我有一个嵌套在UIStackView中的嵌套在UIView中的UIButton从嵌套的UIView中获取帧

enter image description here

我给它的限制,但是,当我

print(helloButton.frame)

CGRect输出比屏幕上显示的内容不同的值。

值得注意的是坐标关闭。

这是有原因吗?我如何准确获得UIButton框架?

+0

你得到你的布局警告自己无法满足约束? – Ares

+0

@Ares不,我不会 –

+0

@Ares我添加了一张照片,看看。它很容易重现 –

回答

0

回答我的问题。 CGRect在任何时候的坐标原点都基于它的来源,其中包含UIView,而不是应用程序的看法。

为了获得基于应用程序的来源(绝对左上角)的坐标我这样做:

在斯威夫特:

let absoluteFrame = myView.convertRect(myView.frame, toView: nil) 
+1

您还应该在'viewDidLayoutSubviews'中进行此转换,而不是'viewDidAppear'(布局可能没有在'viewDidAppear'中完成) –