我正在使用 iOS 4.3。
我有一个 UIViewController,它的视图只有一个 UIToolbar 和一个覆盖视图其余部分的子视图。主 UIView 具有弹簧和支柱,以使其符合任何形状,子视图也是如此。默认情况下,xib 是纵向的。
我把这个 UIViewController 放在我的 UISplitViewController 的右侧。在我展示这个视图控制器之前,我的 iPad 是横向的,并且一直保持横向……所以要清楚,我不会改变方向。
xib是768w和1004h,所以我的子视图是768w和960h。
在-viewDidLoad
我的子视图中是 768x960。
在-viewWillAppear
我的子视图中是 768x960。
在-viewDidAppear
我的子视图中是 768x960。
但是当我在我的 iPad 上实际看到它时,UISplitViewController 的右侧是 704px 宽(应该是这样),而我的视图和我的子视图可验证只有 704px 宽。
但是,在代码或视图控制器生命周期中,我无法查询self.view
或我的子视图并看到宽度为 704 像素。
我需要根据整体视图的大小进行一些更改,因为我的子视图是 UIScrollView,我想根据我的self.view
.
在 View Controller 生命周期中必须有某种方式可以让我获得视图的真实大小。我已经尝试过frame
and thebounds
但它们都一直显示 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));