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我添加了一張照片,看看。它很容易重現 –