关于iOS7 适配的一些总结
来源:互联网 发布:黑马java培训 编辑:程序博客网 时间:2024/06/05 04:17
一、版本判断
- 一般情况下大家都是选择一个宏定义
[[[UIDevice currentDevice]systemVersion]floatValue]<7.0
floor(NSFoundationVersionNumber)>NSFoundationVersionNumber_iOS_6_1
在程序中需要区分系统版本的地方使用,如界面布局时(如StatusBar),如方法调用时(有些方法在7上是弃用的)
二、界面布局初始位置
- 无NavgationBar 时,iOS6上我们布界面时,是从StatusBar 之后开始的,即界面原点(0.0)是从整个屏幕(0.20)算起的,而iOS7状态栏默认全透明,则是从屏幕(0.0)点开始算起。
举个例子:UILabel *label = [[UILabel alloc]initwithFrame:CGRectMake(30,0,120,40)];
iOS6效果:
iOS7效果:
2. 有NavigationBar时,这个就需要了解一下了。首先是我们可以设置Barhidden,当它为YES时,参考无NavigationBar。
当NavigationBar没有隐藏时,在iOS6上就是从NavigationBar之后开始算布局原点,而iOS7上仍然是从屏幕(0,0)开始算起。只不过此时的NavigationBar有一层毛玻璃的效果。如我们建立一个Label,frame:(30,45,120,40)就会有一下的效果,如图:
在图上,我们可以看到,navbar下面会有淡淡的蓝色,但是这样的话我们在做UI界面时就会显得很繁琐,需要计算一个坐标,区分iOS6和iOS7的坐标不同,此时我们有另一个方法可以很好的解决,即 self.navigationController.navigationBar setTranslucent:NO ,就是将navigationBar设置为不透明,此时,无论是iOS6还是iOS7,坐标原点都是从NavBar下面开始算起了,这样我们也不用去区分了。
3. 当然,如果只是这样,似乎并没有什么大问题,可是在我们使用当中,就会逐渐发现tableView也很逗逼。在iOS7上,建立一个tableView ,UITableView *mTable = [UITableView alloc]initWithFrame:self.view.frame],无NavBar时,它是和iOS6一样的效果,是这样的:
可是有NavBar时,同样是(0,0)的坐标,它又是从NavBar之后算起了,如图:
这样我们如果在一个界面要定制多种UI,其中又涉及UITableView的时候,就需要加以区分了。
这只是一个小总结,以供初学者学习,大牛们就一笑而过了,当然,有不对的地方,还望指正。
- 无NavgationBar 时,iOS6上我们布界面时,是从StatusBar 之后开始的,即界面原点(0.0)是从整个屏幕(0.20)算起的,而iOS7状态栏默认全透明,则是从屏幕(0.0)点开始算起。
举个例子:UILabel *label = [[UILabel alloc]initwithFrame:CGRectMake(30,0,120,40)];
iOS6效果:
iOS7效果:
2. 有NavigationBar时,这个就需要了解一下了。首先是我们可以设置Barhidden,当它为YES时,参考无NavigationBar。
当NavigationBar没有隐藏时,在iOS6上就是从NavigationBar之后开始算布局原点,而iOS7上仍然是从屏幕(0,0)开始算起。只不过此时的NavigationBar有一层毛玻璃的效果。如我们建立一个Label,frame:(30,45,120,40)就会有一下的效果,如图:
在图上,我们可以看到,navbar下面会有淡淡的蓝色,但是这样的话我们在做UI界面时就会显得很繁琐,需要计算一个坐标,区分iOS6和iOS7的坐标不同,此时我们有另一个方法可以很好的解决,即 self.navigationController.navigationBar setTranslucent:NO ,就是将navigationBar设置为不透明,此时,无论是iOS6还是iOS7,坐标原点都是从NavBar下面开始算起了,这样我们也不用去区分了。
3. 当然,如果只是这样,似乎并没有什么大问题,可是在我们使用当中,就会逐渐发现tableView也很逗逼。在iOS7上,建立一个tableView ,UITableView *mTable = [UITableView alloc]initWithFrame:self.view.frame],无NavBar时,它是和iOS6一样的效果,是这样的:
可是有NavBar时,同样是(0,0)的坐标,它又是从NavBar之后算起了,如图:
这样我们如果在一个界面要定制多种UI,其中又涉及UITableView的时候,就需要加以区分了。
这只是一个小总结,以供初学者学习,大牛们就一笑而过了,当然,有不对的地方,还望指正。
0 0
- 关于iOS7 适配的一些总结
- 关于适配的一些小小心得(iOS7)
- iOS7 UI改变总结 & iOS7适配遇到的一些问题
- iOS7适配遇到的一些问题
- iOS7适配遇到的一些问题
- iOS7适配遇到的一些问题
- iOS7适配遇到的一些问题
- iOS7适配遇到的一些问题
- iOS7适配遇到的一些问题
- iOS7适配总结
- 关于ios7的适配问题
- 关于iOS7的适配问题
- ios7适配一些问题
- ios7适配一些问题
- 【iOS7的一些总结】8、破解UIView中坐标系的秘密:关于UIView中的frame、bound和center
- iOS7适配问题总结
- iOS7适配问题总结
- iOS7适配问题总结
- 2013年阿里巴巴暑期实习生招聘试题及答案
- Git 常用命令详解
- 浅谈javascript的函数节流
- android (XML) XmlPullParser
- Windows混音器API使用
- 关于iOS7 适配的一些总结
- hessian技术的使用
- 倒排索引之布尔查询模型
- Spket安装及反编译修改“注册程序”过程全解
- single page app & multi page app
- 两个UIViewController之间传递Image图片
- Report compiler class not found : net.sf.jasperreports.compilers.JRGroovyCompiler
- android保持屏幕常亮以及唤醒屏幕的方式
- opencv学习之图像颜色空间转换