2015-04-07 51 views
0

我有一個xib文件,UIView對屏幕的限制有一些限制。從xib文件中獲取大小參數,具體取決於設備屏幕

由於該應用程序正在開發在iPhone上運行的iPhone,我怎樣才能在運行時獲得UIView的大小?我已經嘗試獲取UIView出口的大小參數,但返回的值與最初在xib文件中設置的值相對應。

感謝

+1

你設法得到它出現在視圖之前之後? viewDidLoad沒有設置視圖 –

+0

嘗試在viewDidAppear中獲取它 –

+0

我也嘗試從viewDidAppear中獲取,但獲得的結果相同。 – RFG

回答

0

在你的XIB文件,你應該建立約束,以UIView的連接到控制器的尺寸。這樣,根據屏幕的大小,它會自動調整到適當的大小,您將能夠從代碼中獲取幀值。

enter image description here

一旦限制被設置爲調整根據設備屏幕,你可以做類似下面的東西:

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    CGRect frame = self.mycustomview.frame; // replace with your IBOutlet 
} 
+0

對不起,但不適合我。 – RFG

+0

嗯,有趣...嘗試在不同區域打印出框架的大小,並查看它們何時更改爲適合屏幕。 'viewWillAppear','viewDidAppear','viewWillLayoutSubviews'和'viewDidLayoutSubviews'。其中之一,如果約束設置正確,將顯示新的大小...如果沒有,那麼也許檢查一切正確連接和約束是正確的? –

+0

在新的項目中,它似乎將代碼放入viewDidLayoutSubviews中。所以它在舊項目的代碼中肯定是錯的。謝謝。 – RFG

相關問題