iOS6和iOS7代码的适配(1)
蘋果的iOS7推出后,對(duì)于所有的應(yīng)用來說都提出了一個(gè)天然的需求——適配不同版本的SDK。目前來說,用iOS6的SDK生成的應(yīng)用,可以在iOS7的系統(tǒng)上跑,UI上也保持了原來的風(fēng)格樣式,這是蘋果做的向下兼容,不過不要小看蘋果推行iOS7的決心——蘋果發(fā)布消息,2014年2月1日開始,AppStore上不接受不是Xcode5的提交。
? ? ? 這樣,蘋果給所有的開發(fā)者留下的就是華山一條路了——升級(jí)你的系統(tǒng)吧,Mac10.9都免費(fèi)發(fā)布了,你還要鬧哪樣?!
?
? ? ? 雖然每版SDK的推出都會(huì)有適配的問題,但個(gè)人感覺這次iOS7的SDK的變化是最大的。為了適配iOS7,每個(gè)應(yīng)用都需要做一些事情:
1. icon的變化
? ? ? iOS7的圖標(biāo)和原先也有變化,這點(diǎn)在Xcode5里面體現(xiàn)的很清楚。
? ? ? iPhone上來說,需要增加120X120的圖標(biāo);iPad上來說,需要增加76X76和152X152的圖標(biāo)。并且圖標(biāo)風(fēng)格推薦和iOS7盡量貼近,蘋果仍然會(huì)幫你做圓角化(圓角的半徑不同了),但陰影效果等不會(huì)幫做了。(設(shè)計(jì)表示躺槍啊)
? ? ? 官方有一份文檔可以參考:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27
2. 啟動(dòng)界面
? ? ? 啟動(dòng)界面需要增大一些,把原先的status bar的區(qū)域加進(jìn)去。如果原先你的設(shè)計(jì)就是全屏的,這一步就可以省略了。
3. Retina和4寸屏幕的支持
? ? ? 目前的應(yīng)用這個(gè)應(yīng)該都有支持了吧,如果你不支持iPhone5的話,AppStore上已經(jīng)不能提交了。
4.調(diào)整layout
? ? ? 由于status bar的原因,坐標(biāo)計(jì)算的原點(diǎn)有變化,很多時(shí)候會(huì)發(fā)現(xiàn)UI上有不少重疊的現(xiàn)象,這個(gè)就需要調(diào)整了。由于同時(shí)要適應(yīng)iOS6和iOS7,這個(gè)調(diào)整相應(yīng)也有一些難度。
? ? ? 蘋果官方推薦使用autolayout來幫助做自動(dòng)的適應(yīng)(3.5寸和4寸的屏幕)。iOS7里面的autolayout功能說增強(qiáng)了不少,以前我也不愿意使用這個(gè)功能,以后的應(yīng)用中打算試試。
5. Bar Button
? ? ? Bar Button是指那些系統(tǒng)預(yù)設(shè)的用在Toolbar或者NavigatorBar上的按鈕,UI上有明顯改變,大小也有一定的變化,tintColor也變成了barTintColor。
6. 其他UI的細(xì)節(jié)
? ? ? UI的變化真的很多,大的框架不會(huì)變化,但各處細(xì)節(jié)改變很多,這個(gè)也沒法窮舉了,打算后面慢慢總結(jié),把自己遇到的分享出來。
?
? ? ? iOS6的應(yīng)用運(yùn)行在iOS7的系統(tǒng)上時(shí),會(huì)模擬出一個(gè)iOS6的環(huán)境,所以應(yīng)用仍然會(huì)擬物化的顯示,UI的控件也都顯示iOS6的風(fēng)格。不過蘋果官方說這樣效率較低,不建議這么做,目前的情況時(shí)過渡,相信會(huì)逐漸減少。
? ? ? 不過我iOS6的應(yīng)用也可以在iOS7系統(tǒng)上運(yùn)行時(shí)也出現(xiàn)過異常。異常是在progressView上出現(xiàn)的,在界面上顯示和iOS7一樣很細(xì),解決方法是在代碼里把frame顯式指定了一下。
?
? ? ? iOS系統(tǒng)的判定,這個(gè)可以通過[[[UIDevice currentDevice] systemVersion] floatValue]來獲得。
http://blog.csdn.net/sakulafly/article/details/17795285
轉(zhuǎn)載于:https://www.cnblogs.com/geek6/p/3840605.html
總結(jié)
以上是生活随笔為你收集整理的iOS6和iOS7代码的适配(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: puTTY的配置导入和导出
- 下一篇: 双向绑定篇