【发布时间】:2015-08-15 22:21:44
【问题描述】:
为了修复 iOS 7+ 中状态栏和导航栏的重叠问题,我在 didFinishLaunchingWithOptions 中使用了这段代码 AppDelegate.m :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//some codes
//.
//.
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
{
UIView *FakeNavBar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
FakeNavBar.backgroundColor = UIColorFromRGB(0x55BCAFF);
float navBarHeight = 20.0;
for (UIView *subView in self.window.subviews) {
if ([subView isKindOfClass:[UIScrollView class]]) {
subView.frame = CGRectMake(subView.frame.origin.x, subView.frame.origin.y + navBarHeight, subView.frame.size.width, subView.frame.size.height - navBarHeight);
} else {
subView.frame = CGRectMake(subView.frame.origin.x, subView.frame.origin.y + navBarHeight, subView.frame.size.width, subView.frame.size.height);
}
}
[self.window addSubview:FakeNavBar];
}
}
它将我所有的控制器和视图向下推 20 像素,并且重叠问题得到修复,但是当我到达我的选项卡视图控制器场景时,底部的选项卡栏会消失 20 像素。
那么如何在将其他所有内容向下移动的同时将标签栏保持在原位?
如果我只能将标签栏向上移动 20 像素,它也可以工作。
【问题讨论】:
标签: ios objective-c uitabbarcontroller uinavigationbar