2014-12-03 41 views
5

當我放置視圖的幀大小(0.0,0.0,320.0,435.0)應用自動佈局它看起來在iphone 5(4英寸)正確,當我在iphone 4s它看起來是正確的,由於自動佈局,但是當我在運行時執行後獲取其幀的值時,它出現"(0.0,0.0,320.0,435.0)"我無法獲得在iphone 4s中應用自動佈局後有變化的大小? 我想獲得大小,因爲使用該大小我可以通過編程方式設置創建自定義視圖的大小。UIView使用自動佈局調整大小,但在運行時獲取其框架大小不正確ios

+2

在什麼時候,你想讀的框架?這可能是因爲在印刷它的框架時,這個觀點還沒有制定出來。 – liamnichols 2014-12-03 12:05:16

+0

@liamnichols我想在視圖中加載,因爲我想根據獲得的框架大小來設置自定義視圖的大小。 – 2014-12-03 12:06:38

+0

嘗試添加代碼在視圖中會出現..並檢查它是否工作 – 2014-12-03 12:34:33

回答

8

我認爲自動佈局在您調用此窗口時沒有時間佈置您的視圖。自動佈局在viewDidLoad被調用的時候沒有發生過,因爲它在視圖加載之後才被調用,並且只有在視圖被放置到視圖控制器的視圖層次結構中並最終被佈置(在視圖的layoutSubviews方法中)之後纔會調用它。

試試這個代碼

 //delegate method 
     - (void) viewDidLayoutSubviews 
     { 
      NSLog(@"height=%f",self.myview.frame.size.height); 
     } 
13

你的「得到真正的尺寸代碼」,插入下面的代碼:之前

yourView.setNeedsLayout() 
yourView.layoutIfNeeded() 
+0

它適用於我 – 2015-06-18 06:51:37

相關問題