APP支持iPhone5
升级准备
为了支持iPhone5,我们首先需要准备以下工具和资源:
- 下载最新版的XCode4.5
- 让美术同学提供640 x 1136分辨率的启动画面,640 x 1136分辨率的程序截图(用于在app store中显示)
- 由于iPhone5使用的A6处理器采用了新的armv7s架构,所以如果你使用了第三方的静态链接库,需要下载对应支持armv7s的版本。我们由于使用了第三方的数据统计工具Flurry,所以下载更新了Flurry的静态链接库。
- 如果你的显示器分辨率太小,将无法显示完整的iPhone5模拟器,可选的解决办法是换个更大的显示器或者把显示器竖起来,象我这样:
另外还有一个简单的办法,可以在启动模拟器后,用快捷键command+3(50%),command+2(75%), command+1(100%),来调整模拟器的显示比例,谢谢Superrr一一 提供的方法,比我的简单多了。
具体升级步骤如下
升级启动画面和第三方链接库
升级启动画面,将美术同学提供的640 x 1136分辨率的启动画面图片,命名为Default-568h@2x.png,添加到工程中即可。
升级第三方链接库,这个只需要用新的第三方链接库替换掉以前的即可。如果你使用了例如opencv这种需要自己编译对应版本链接库的开源库,那么替换之前,需要自己先用xcode4.5编译其armv7s版本的静态链接库。
调整xib文件
粉笔网客户端的界面基本上都是顶部是UINavigationBar, 底部是UITabBar或UIToolBar,中间是UITableView。
对于这一类界面,调整起来非常简单,只需要将UITableView设置成高度自动扩展的Autosizing方式,如下图所示:
对于底部的UIToolBar,Autosizing设置成靠底部对齐的方式即可。如下图所示:
代码调整
有一些界面元素的位置是用代码来设置的,例如“发表笔记”界面中浮动贴在输入法键盘上面的各种可选操作的UIToolbar。因为键盘的高度在不同的输入法下是不一样的,所以需要用代码动态调整。
我的调整代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
可以看到,我将设备的各种高度都定义成了宏,这里的宏UI_SCREEN_HEIGHT表示整个设备的高度,以前这个宏的值是固定的480,现在因为iPhone5中高度值变了,所以我们将这个宏定义改成了如下的值,这样,所有相关的用代码实现的界面位置调整都搞定了。我的UI相关的宏定义如下:
1 2 3 4 5 6 7 |
|
如果你以前没有将这些设备的高度值抽取成宏,我建议你通过查找替换,先将所有用到480的地方修改成宏,然后再增加上面的宏定义即可。
当然,也有一些调整稍微复杂一些,例如粉笔网首页的上拉加载更多,需要判断上拉高度是否到达阈值,这些也是和设备高度相关的。这些阈值信息以前可能就直接写成和高度相关的值,例如220什么的,这些通过直接查找480还没法直接找到。
对于这些问题,只能是通过在模拟器中测试,发现问题,然后再把这些“Magic Number”替换成用上面提到的宏计算的公式。例如我们的上拉加载更多的阈值宏定义如下:
1 2 3 4 5 |
|
调整屏幕Rotation的回调函数
从iOS6开始,苹果修改了屏幕旋转的回调函数。在iOS6以前,回调函数是
1 2 3 4 |
|
现在新的回调函数是:
1 2 3 4 5 6 7 8 9 10 11 |
|
并且,现在是否旋转屏幕是由最上层的View Controller决定。例如,如果你是由 UITabBarController或UINavigationController包起来的界面的话,是否旋转屏幕就由UITabBarController或UINavigationController中的shouldAutorotate回调决定,而默认其返回的是YES。修改方法是给这2个容器Controller增加Addition,将其shouldAutorotate修改成由当前显示的子view controller决定,或者直接默认返回NO。
提交应用
基本上就是以上这些调整工作了,完了之后用Xcode4.5编译后提交审核,并且在itunes connect中设置iPhone5屏幕尺寸的app介绍截图即可。业界传言说对于支持iPhone5的程序,苹果在应用审核的时候会优先进行,我不知道是否是真的,不过我们的应用确实只用了5天时间就通过了审核,这是我个人遇到过的最快的一次审核。
祝大家国庆节玩得开心~
Posted by 唐巧 Oct 5th, 2012 iOS
原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
APP支持iPhone5相关推荐
- iOS 让你的APP支持iPhone5
转自:http://www.cocoachina.com/applenews/devnews/2013/0326/5889.html 为了支持iPhone5,我们首先需要准备以下工具和资源:1.下载最 ...
- 让你的APP支持iPhone5
升级准备 为了支持iPhone5,我们首先需要准备以下工具和资源: 1.下载最新版的XCode4.5 2.让美术同学提供640 x 1136分辨率的启动画面,640 x 1136分辨率的程序截图(用于 ...
- 中国 IPv6 网民活跃用户达 3.62 亿,但 App 支持与国外差距较大!
整理 | 夕颜 出品 | CSDN(ID:CSDNnews) 2017 年底,国家开始推行 IPv6 普及,出台多项政策推进 IPv6 规模部署.至今,IPv6 普及已经有了巨大的进步.普通用户可能在 ...
- 别只关注M1芯片的苹果笔记本,iOS APP支持在 Mac上运行也是大事
将会在当地时间 11 月 10 日(北京时间 11 月 11 日凌晨 2 点)在 Apple Park 举办发布会,这是苹果在本年度秋季举行的第三次发布会,App Store 上似乎透露出发布会的蛛丝 ...
- SwiftUI 音乐和网络大全之网络音乐播放App支持iTunes搜索与播放(教程含源码)
实战需求 SwiftUI 音乐和网络大全之网络音乐播放App支持iTunes搜索与播放(教程含源码) 本文价值与收获 看完本文后,您将能够作出下面的界面 实战代码 import SwiftUIstru ...
- Android关联文件类型,使得自己app支持打开【加入到“用其它应用打开”的列表中】
----稍作记录,避免下次忘了又得我去查官方文档---- 有时候,我们开发的app需要支持打开某些文件,如何才能使得打开文件时系统能把我们开发的app列出来呢? 例如, 1.我开发了一个浏览器,那用户 ...
- 家人共享为什么显示服务器失败,App 支持 “家人共享”功能 App Store服务器通知更新...
昨日,苹果面向开发者宣布,AppStore 服务器通知更新. IT之家了解到,如果 App 支持 "家人共享"功能,开发者现在可以接收新的 AppStore 服务器通知,来了解家庭 ...
- 一分钟让您的APP支持AVIF图片
| 导语AVIF是一种基于AV1视频编码的新一代图像格式,压缩率高,画面细节好.移动端APP经常面临网络环境不稳定.需要帮用户节省流量等场景,那就使用AVIF图片吧.不过AVIF目前只在 iOS16. ...
- SwiftUI 精品项目之完整Go围棋游戏App支持在线对战OGS Alamofire SocketIO(教程含源码)
实战需求 SwiftUI 精品项目之完整Go围棋App支持在线OGS Alamofire SocketIO 本文价值与收获 看完本文后,您将能够作出下面的界面 基础知识 本项目是一个完全由Swift和 ...
最新文章
- CV之后,纯MLP架构又来搞NLP了,性能媲美预训练大模型
- VS如何将核心函数封装成dll、lib,并供给第三方调用?
- java ado连接mysql_【转】Java JDBC对应C# ADO连接数据库之区别
- 在MRC模式下使用SDWebImage
- 构建之法 阅读笔记01
- *和**在Python中意味着什么?它与指针和地址有关吗?
- 让visual连接sqlserver数据库
- Struts2+Spring+Hibernate step by step 11 ssh拦截验证用户登录到集成
- RHEL7 -- 使用Chrony设置时间与时钟服务器同步
- 【java笔记】random类生成随机数
- XShell rz、sz命令
- matlab 画标准正态曲线,matlab中如何画标准正态分布的密度函数曲线?
- html 表单form代码,html - 表单form(示例代码)
- 一封来自大佬的密信待查收
- 配置运营商光猫做交换机拓展网络
- 多传感器融合综述---FOV与BEV
- Python基础题目(三)
- Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇)
- 内核spinlock raw_spin_lock spin_lock_bh
- DB2 Merge 语句的使用
热门文章
- wxpython入门_wxPython简单入门
- 机器学习在地震预测中的应用:方法与实践详解
- 深度学习书籍推荐2019
- lnmp一键安装包 安装php-fpm,LNMP一键安装包 PHP自动升级脚本
- 四六级议论文写作万能句
- 移动平台WorkPlus集成化办公,打造企业全场景业务生态
- python笔记 7-8 进程池 进程通信 迭代器 消息队列 Queue 协程 和正则表达式
- Optional int parameter ‘grade‘ is present but cannot be translated into a null value due to being de
- 前端也要懂物理 —— 惯性滚动篇
- 你首先是一个人,然后你才是程序员。