xcode5 ios7 status bar 各种隐藏问题


用xcode5开发新的iOS游戏,虽然我已经在info.plist里面把Status bar is initially hidden设置成了YES,但在设备上一跑还是看到status bar。在Info.plist里面添加一个新的row,"View controller-based status bar appearance",然后把键值设置为NO。再测试,就ok了。但是在调用相机功能,后又会出来。最后找到如下文章解决问题。
--------------------------------------------------------
先来看看网上同胞们给出的答案:
1.总结的最全面的要数http://stackoverflow.com/questions/18294872/ios-7-status-bar-back-to-ios-6-style
这篇文章总结的固然很好,但终究是少了些例子。而且是英文的,相信不少和我一样英文不好的,看得是一头雾水。不过增加些概念方面得知识还是有必要的。

2. 自己看到的其他人的解决办法以及自己尝试的结果,大概是下面这样子的,欢迎拍砖交流。

第一种:
首先,需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;
然后,在UIViewController子类中实现以下两个方法:

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

- (BOOL)prefersStatusBarHidden
{
    return NO;
}

最后,在需要刷新状态栏样式的时候,调用[self setNeedsStatusBarAppearanceUpdate]方法即可刷新。这种方法本人觉得不是很好(不知道是否方法不对),能解决问题,但对于没有基类的程序(架构不是太好的应用),未免很繁琐,需要进行逐个处理。


第二种:
首先,需要在Info.plist配置文件中,增加一下两个键值对。
View controller-based status bar appearance > NO
Status bar style > UIStatusBarStyleLightContent (simple string)(这个我本人建议还是加在代码中比较好,如果代码中有相应的处理,其他有地方设置部队,相应的controller将不受影响)
然后,在相关的controller中进行修改。比如:navigationcontroller需要增加一个64pix的图片,或者修改其高度。其他普通的controller,本人的处理办法是加入代码:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:NO];
    CGRect frame = self.view.frame;
    if ([[UIDevice currentDevice] isOS7Version]) 
    {
        frame.origin.y = 20;
        frame.size.height = self.view.frame.size.height - 20;
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
    } else {
        frame.origin.x = 0;
    }
    self.view.frame = frame;
}

第三种:
直接设置window,因为在ios7中statusbar是浮在上面的,那么我们就将window向下移20pix。从理论上讲,我很认同这种方法,但没有尝试成功。如有那位大神成功了尝试,多谢能指教。
http://stackoverflow.com/questions/18886195/ios-7-status-bar-overlapping-ui
在这里鄙人还要补充的一点是UIImagePickerController对于statusbar的修改。这点曾纠结了我一个多小时,后来看到了有人如下解决:

- (void)navigationController:(UINavigationController *)navigationController
      willShowViewController:(UIViewController *)viewController
                    animated:(BOOL)animated 
{
    if ([navigationController isKindOfClass:[UIImagePickerController class]] &&
        ((UIImagePickerController *)navigationController).sourceType ==UIImagePickerControllerSourceTypePhotoLibrary) 
    {
        [[UIApplication sharedApplication] setStatusBarHidden:NO];
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO];
    }
}

很好的解决了我的问题。参考链接如下: http://stackoverflow.com/questions/2982095/is-there-a-way-to-prevent-uiimagepickercontroller-change-statusbar-style
还是先辈们总结的到位呀:又发现了一篇好文章http://www.vinqon.com/codeblog/?detail/11109
--------------------------------------------------------
部分摘自:http://my.oschina.net/megan/blog/167500


来自:http://blog.sina.com.cn/s/blog_693de6100101kif0.html

基于TROPOMI高光谱遥感仪器获取的大气成分观测资料,本研究聚焦于大气污染物一氧化氮(NO₂)的空间分布与浓度定量反演问题。NO₂作为影响空气质量的关键指标,其精确监测对环境保护与大气科学研究具有显著价值。当前,利用卫星遥感数据结合先进算法实现NO₂浓度的高精度反演已成为该领域的重要研究方向。 本研究构建了一套以深度学习为核心的技术框架,整合了来自TROPOMI仪器的光谱辐射信息、观测几何参数以及辅助气象数据,形成多维度特征数据集。该数据集充分融合了不同来源的观测信息,为深入解析大气中NO₂的时空变化规律提供了数据基础,有助于提升反演模型的准确性与环境预测的可靠性。 在模型架构方面,项目设计了一种多分支神经网络,用于分别处理光谱特征与气象特征等多模态数据。各分支通过独立学习提取代表性特征,并在深层网络中进行特征融合,从而综合利用不同数据的互补信息,显著提高了NO₂浓度反演的整体精度。这种多源信息融合策略有效增强了模型对复杂大气环境的表征能力。 研究过程涵盖了系统的数据处理流程。前期预处理包括辐射定标、噪声抑制及数据标准化等步骤,以保障输入特征的质量与一致性;后期处理则涉及模型输出的物理量转换与结果验证,确保反演结果符合实际大气浓度范围,提升数据的实用价值。 此外,本研究进一步对不同功能区域(如城市建成区、工业带、郊区及自然背景区)的NO₂浓度分布进行了对比分析,揭示了人类活动与污染物空间格局的关联性。相关结论可为区域环境规划、污染管控政策的制定提供科学依据,助力大气环境治理与公共健康保护。 综上所述,本研究通过融合TROPOMI高光谱数据与多模态特征深度学习技术,发展了一套高效、准确的大气NO₂浓度遥感反演方法,不仅提升了卫星大气监测的技术水平,也为环境管理与决策支持提供了重要的技术工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值