首页 文章 精选 留言 我的

精选列表

搜索[网站开发],共10000篇文章
优秀的个人博客,低调大师

iOS开发-UINavigationBar和Status Bar实用技巧

iOS7之后关于UINavigationBar和Status Bar都发生了一系列的改变,如果不需要兼容iOS7之后的设备,按照网上有些资料去解决问题会踩到一些坑。在iOS 7中,我们可以修改每个View Controller中状态栏的外观,而iOS7之前的状态栏都是白色风格。iOS7之前设置背景颜色还需要搞个背景View覆盖,而iOS7只需要设置一下barTintColor颜色即可。 UINavigationBar设置 1.设置背景颜色: 1 [ self .navigationController.navigationBar setBarTintColor:[UIColor redColor]]; 效果如下: 2.Translucent设置成透明度,设置成YES会有一种模糊效果: 1 [ self .navigationController.navigationBar setTranslucent: YES ]; 设置为NO的效果: 3.设置背景图片,图片样式需要根据情况适用,调用方法为setBackGroundImage: 1 [ self .navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@ "FlyElephant.png" ] forBarMetrics:UIBarMetricsDefault]; 4.设置NavigationBar标题大小及颜色,之前设置是通过UITextAttributeFont,UITextAttributeTextColor,UITextAttributeTextShadowColor和UITextAttributeTextShadowOffset设置,现在需要都根据NS开头的属性去设置: 1 2 3 NSDictionary *textAttributes=@{ NSForegroundColorAttributeName :[UIColor whiteColor], NSFontAttributeName :[UIFont systemFontOfSize:20]}; [ self .navigationController.navigationBar setTitleTextAttributes:textAttributes]; 5.NavigationBar设置中间的标题或者自定义View: 1 2 [ self .navigationItem setTitle:@ "旅行" ]; [ self .navigationItem setTitleView:[UIImage imageNamed:@ "FlyElephant" ]; 6.单个或多个左右Item设置: 单个leftItem设置: 1 2 3 UIBarButtonItem *leftBarButton=[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@ "BackIcon" ] style:UIBarButtonItemStylePlain target: self action: @selector (popBack)]; [leftBarButton setTintColor:[UIColor colorWithWhite:0 alpha:1]]; self .navigationItem.leftBarButtonItem=leftBarButton; 效果如下: 多个rightItem设置: 1 2 3 4 UIBarButtonItem *firstItem=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target: self action: nil ]; UIBarButtonItem *secondItem=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target: self action: nil ]; NSArray *rightItems=@[firstItem, secondItem]; self .navigationItem.rightBarButtonItems=rightItems; 效果如下: 状态栏(StatusBar)设置 iOS7之前状态栏永远是白色风格,我们没有太多的空间去进行修改,iOS 7之后,我们可以修改每个控制器中状态栏的外观,比如说在白天和夜间模式的切换过程中我们可以修改状态栏的颜色。状态栏上的时间、电池指示器和Wi-Fi信号默认是暗色,如上图所示,不过我们可以通过修改UIBarStyle然后执preferredStatusBarStyle的覆写方法: 1 [ self .navigationController.navigationBar setBarStyle:UIBarStyleBlack]; 最终执行的是覆写控制器中preferredStatusBarStyle的方法:(如果上面的代码不写是不会执行到preferredStatusBarStyle方法的) 1 2 3 4 - (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; } 效果如下: 隐藏状态栏只需要覆写一下prefersStatusBarHidden即可: 1 2 3 4 - ( BOOL )prefersStatusBarHidden { return YES ; } 效果如下: 如果需要重新刷新一下状态栏,可以通过setNeedsStatusBarAppearanceUpdate控制~ 本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4631384.html,如需转载请自行联系原作者

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册