在viewController的主视图中布局CALayer对象时,我发现IOS 43.和5.1之间存在差异
我在横向模式下运行。我想要一个宽40磅的CALayer对象,显示在左上角 - 与导航栏和屏幕的整个高度对接(减去导航栏)。状态栏已禁用。我计算图层的高度作为视图的高度减去导航栏的高度。
在viewController的viewDidLoad中,我有以下代码....
[[UIApplication sharedApplication] setStatusBarHidden:YES];
CGRect viewFrame = self.view.frame;
float navBarHeight = self.navigationController.navigationBar.frame.size.height;
CGRect f = CGRectMake( 0, navBarHeight, 40, viewFrame.size.height - navBarHeight);
leftLayer = [[CALayer alloc] init];
leftLayer.frame = f;
leftLayer.backgroundColor = [UIColor greenColor].CGColor; // for debug
[self.view.layer addSublayer:leftLayer];
当我在5.1 viewFrame =(0,0,480,288)和navBarHeight = 32上运行时。当我在4.3 viewFrame =(0,0,480,320)和navBarHeight = 32上运行时。我已经在纵向模式下尝试相同的比较,OS版本之间没有差异。
navBarHeight似乎也错了 - 因为我的绿色CALayer对象在它和导航栏之间有大约12个白色空间。我做错了什么?
答案 0 :(得分:0)
使用viewWillAppear方法调整帧时,我有更好的运气,因为此时视图的大小已根据方向调整。你在那个方法中有同样的问题吗?