2015-12-15 32 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'中完成) –