我正在使用iOS 4.3。在UIViewController的生命週期中確定UIView的實際大小
我有一個UIViewController的視圖,只有一個UIToolbar和覆蓋視圖的其餘部分的子視圖。主要的UIView有彈簧和支柱,使它符合任何形狀,子視圖也一樣。默認情況下,xib處於縱向。
我把這個UIViewController放到我的UISplitViewController的右邊。在展示這個視圖控制器之前,我的iPad處於橫向取向,並始終保持橫向方向...所以要清楚,我不會改變方向。
xib是768w和1004h,所以我的子視圖是768w和960h。
在-viewDidLoad
我的子視圖是768x960。
在-viewWillAppear
我的子視圖是768x960。
在-viewDidAppear
我的子視圖是768x960。
但是當我真的在iPad上看到它時,UISplitViewController的右側是704px寬(因爲它應該是這樣),我的視圖和子視圖都可驗證地只有704px寬。
但是,在代碼或View Controller生命週期中,我無法查詢self.view
或我的子視圖,看到寬度爲704px。
我需要根據整體視圖的大小進行一些更改,因爲我的子視圖是UIScrollView,我想根據我的self.view
的實際大小更改scrollView.contentSize。
在View Controller生命週期中,我必須得到一些真實的視圖大小。我試過了frame
和bounds
,但他們都顯示768x906。
NSLog(@"scroll view frame=%@ bounds=%@", NSStringFromCGRect(self.scrollView.frame), NSStringFromCGRect(self.scrollView.bounds));
NSLog(@"view frame=%@ bounds=%@", NSStringFromCGRect(self.view.frame), NSStringFromCGRect(self.view.bounds));
UIViewController *detailVC = [self.splitViewController.viewControllers objectAtIndex:1];
NSLog(@"splitview frame=%@ bounds=%@", NSStringFromCGRect(detailVC.view.frame), NSStringFromCGRect(detailVC.view.bounds));
添加一個觸發記錄視圖大小的操作的按鈕。點擊按鈕時是否正確? –
是的。在視圖真正可見之後,我點擊一個按鈕,這是正確的。 –
我無法在iOS 5或iOS 6下的模擬器上重現它。微小的測試項目在這裏:https://github.com/mayoff/stackoverflow-12946064該框架在'viewDidAppear:'中是正確的。 –