通过简单的方法适应iOS7中的UIViewController,同时兼容iOS6
2015-06-11 23:32
507 查看
通过简单的方法适应iOS7中的UIViewController,同时兼容iOS6
2014-01-10, FRI | COMMENTS
设置view从导航栏下方开始布局
在iOS6及以前的版本中,UIViewController的高度和位置都是从导航栏下方开始的。但是在iOS7中,UIViewController不再提供wantsFullScreenLayout属性,UIViewController创建后默认就是Full Screen的,因此如果带导航栏的应用界面中的部分控件会与导航栏重叠在一起。我们的应用大都要兼容低于iOS7的版本,所以必须解决这种不兼容的现象。 思路是,还是按照iOS6的布局方式,因为被导航栏覆盖部分界面实在看不出有什么好处。所以,我们需要判断iOS版本,如果是iOS6,一切照旧,如果是iOS7,则设置view从导航栏下方开始布局。
简单的方法,在ViewDidLoad里面增加几句代码即可,如下:
1 2 3 4 5 6 7 8 9 10 11 | #define SystemVersionLessThan(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending) - (void)viewDidLoad { [super viewDidLoad]; if (!SystemVersionLessThan(@"7.0")) { self.edgesForExtendedLayout = UIRectEdgeNone; self.extendedLayoutIncludesOpaqueBars = NO; } } |
如果有很多个UIViewController,只需要新建一个UIViewController的子类,比如
MyUIViewController,把上面代码放到MyUIViewController的
ViewDidLoad中,然后修改所有的UIViewController为MyUIViewController即可。
修改iOS7中UITableViewCell的分隔线
只是还有一个问题,如果添加了UITableView,会发现cell的分隔线短了一小部分,还需设置如下:1 | self.tableView.separatorInset = UIEdgeInsetsZero; |
iOS7:
iOS7表格分隔线:
搞定!
去掉iOS6中导航栏的阴影
iOS6的UINavigationBar默认加了一层阴影,而iOS7中则默认没有,我们可以通过下面的代码去掉iOS6的导航栏阴影:12 | if (!SystemVersionLessThan(@"6.0")) { [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]]; } |
原文链接: http://blog.lessfun.com/blog/2014/01/10/simple-way-to-adjust-viewcontroller-to-fit-ios7/
版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
Posted by lslin 2014-01-10,
Fri iOS
相关文章推荐
- 给iOS工程增加Daily Build
- iOS5中UIViewController的新方法
- DuiVision开发教程(18)-弹出窗
- duilib中各控件响应的消息类型
- Arduino 入门程序示例之一个 LED(2015-06-11)
- response.setContentType与 request.setCharacterEncoding 区别
- Implement Stack using Queues - LeetCode 225
- 在SQuirrel中使用Phoenix操作HBase——创建表和视图
- MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等
- 黑马程序员_89_GUI图形化界面
- 【NGUI实例开发】实现弹窗面板
- UIPickerView - 城市选择
- UIDatePicker - 键盘处理-选择日期
- Java集合体系总结—Map、Set、List、Queue
- cocopods install或update 安装或更新第三方库时,报The ... target overrides the 'OTHER_LDFLAGS' build setting....
- Android UI常用实例 如何实现欢迎界面(Splash Screen)
- Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
- oc中UITableViewb的编辑插入模式
- NGUI研究院之为什么打开界面太慢(十三)
- uva 10099 The Tourist Guide(最“大”生成树)