今年苹果发布会已经结束,但人们貌似对iPhone6和iPhone6plus不太感兴趣,而对iWatch非常期待。这次苹果一次发布两种屏幕大小的手机,而且与之前的机型的屏幕大小都不一样。这对开发者来说,无疑是最担心的事了,之前的app在iPhone6和iPhone6Plus上会不会布局全乱了呢?
不用担心苹果肯定会考虑到这些问题的:
- 虽然屏幕分辨率变了很多,但是5、5s、6、6+他们的屏幕长宽比还是一致的,都是16:9;
- 之前的app在6或6+上安装不会受影响,会按比例缩放、填充整个屏幕;
- Xcode6之前的版本创建的项目,在6上运行,其坐标系依然和以前一样;
- Xcode6创建的项目,其坐标系5s、6、6+就都不一样了;
之前的坐标系我们都知道是320*480和320*568;那么新版的iPhone坐标系又会是多少呢?我用Xcode6GM版新建了一个项目,分别在storyboard、代码、xib上测试之后的数据为:
iPhone6:
2014-09-15 11:15:52.104 X6Test[1766:62602] SB screen bounds = {{0, 0}, {375, 667}}
2014-09-15 11:15:52.105 X6Test[1766:62602] SB view bounds = {{0, 0}, {375, 667}}
2014-09-15 11:15:53.304 X6Test[1766:62602] code screen bounds = {{0, 0}, {375, 667}}
2014-09-15 11:15:53.305 X6Test[1766:62602] code view bounds = {{0, 0}, {375, 667}}
2014-09-15 11:15:57.913 X6Test[1766:62602] xib screen bounds = {{0, 0}, {375, 667}}
2014-09-15 11:15:57.913 X6Test[1766:62602] xib view bounds = {{0, 0}, {600, 600}}
iPhone6Plus
2014-09-15 11:24:07.164 X6Test[1855:66991] SB screen bounds = {{0, 0}, {414, 736}}
2014-09-15 11:24:07.165 X6Test[1855:66991] SB view bounds = {{0, 0}, {414, 736}}
2014-09-15 11:25:06.637 X6Test[1855:66991] code screen bounds = {{0, 0}, {414, 736}}
2014-09-15 11:25:06.638 X6Test[1855:66991] code view bounds = {{0, 0}, {414, 736}}
2014-09-15 11:25:08.834 X6Test[1855:66991] xib screen bounds = {{0, 0}, {414, 736}}
2014-09-15 11:25:08.834 X6Test[1855:66991] xib view bounds = {{0, 0}, {600, 600}}
此外,用Xcode6打开以前的老项目,新建的类的坐标系也会和之前的一样。
Xcode6又有哪些变化呢?
1、在新建项目的时候少了一些选项,例如常用的Empty工程:
2、为了更好地适配屏幕大小,在xib的设置里新增了大小的选项:
3、工程里没有了pch文件,需要自己创建,那么创建完怎么想以前一样让Xcode自己去编译进去呢?在Build Settings里设置:
4、工程新增了一个xib文件:LaunchScreen.xib,顾名思义,当程序启动的时候会调用到,和之前的Launch Image类似,这个xib用起来会更加的灵活:
5、在Images.xcassets新增了iPhone6和iPhone6+的启动图片和iPhone6+的横屏图片: