(iPhone/iPad开发)适配Xcode 5+iOS 7之statusBar

本文介绍了如何在iOS7中适配状态栏的方法。通过在Info.plist中设置Viewcontroller-basedstatusbarappearance为NO,并在ViewController中调整视图的frame来确保适配效果。此外,还提供了在不同系统版本下调整窗口frame的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知,iOS7在statusBar问题上和之前低版本系统不一样,在适配iOS 7时,statusBar也是需要适配的一部分,我这边的处理方法是

首先,需要在Info.plist配置文件中,增加一下一个键值对。
View controller-based status bar appearance = NO

然后再相应的ViewController里单独处理,这是为了避免有些不必要的Controller反受影响

- (void)viewDidLoad:(BOOL)animated
{
    [super viewDidLoad:NO];
    CGRect frame = self.view.frame;
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
        frame.origin.y = 20;
        frame.size.height = self.view.frame.size.height - 20;
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    } else {
        frame.origin.y = 0;
    }
    self.view.frame = frame;
}

然后,在接下来的addSubView时,最好使用相对布局,设置距离statusBar最近的View frame时,origin.y,最好设置成self.view.frame.origin.y,而不是单独是不是判断iOS7再设置0或者20,如此,基本上statusBar相关问题就已经适配结束。



备注:还有一种思路,在

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

中,从window层面设置frame.待尝试。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

[application setStatusBarStyle:UIStatusBarStyleLightContent];

self.window.clipsToBounds =YES;

self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);

//added on 19th Sep
self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值