iOS 屏幕適配

屏幕適配問題共有四種解決方案:(1)根據(jù)屏幕寬高寫控件frame(下策);(2)Autoresizing的使用(中策);(3)AutoLayout的使用(上策);(4)sizeClasses+AutoLayout的使用(上上策)。下面將會(huì)分別來進(jìn)行敘述。

(1)根據(jù)當(dāng)前屏幕的寬高寫frame

在新特性界面中,根據(jù):[UIScreen mainScreen].bounds.size.height.來判斷用戶的屏幕長度,來判斷時(shí)3.5寸,4寸,4.7寸,5.5寸,以此來設(shè)置新特性中圖片選用哪套。

常用寫法:

#define JKScreenW [UIScreen mainScreen].bounds.size.width

CGFloat btnW = JKScreenW * 0.2;

缺點(diǎn):代碼復(fù)雜,容易出錯(cuò);而且維護(hù)難度大,靈活性極差。

(2)Autoresizing使用

在Autolayout以前,有Autoresizing可以做屏幕適配,但局限性較大,只能針對父子關(guān)系進(jìn)行有限調(diào)整,如邊距固定,尺寸可變,對于兄弟關(guān)系的調(diào)整無法實(shí)現(xiàn)。對于UI比較固定的app,這種方式基本滿足。相比之下,Autolayout比Autoresizing強(qiáng)大很多。

(3)Autolayout使用

--在以前的iOS程序是怎樣布局UI的?

經(jīng)常編寫大量的坐標(biāo)計(jì)算代碼;

為了保證在各種屏幕上都能有完美的UI界面效果,有時(shí)還需要分別為幾種屏幕編寫不同的坐標(biāo)計(jì)算代碼(即傳說中的“屏幕適配”)

--什么是Autolayout?

Autolayout是一種“自動(dòng)布局”技術(shù),專門用來布局UI界面的。

Autolayout自iOS6開始引入,由于Xcode4的不給力,當(dāng)時(shí)并沒有得到很大的推廣。

自iOS7(Xcode5)開始,Autolayout的開發(fā)效率得到很大的提升。

蘋果官方也推薦開發(fā)者使用Autolayout來布局UI界面。

Autolayout能夠很輕松的解決屏幕適配的問題。

(4)Size Classes使用

iOS8中新增了Size Classes特性,他是對當(dāng)前所有iOS設(shè)備尺寸的一個(gè)抽象。

用法:

屏幕的寬和高分別分成三種情況:(Compact,Regular,Any).也就是緊湊,正常和任意。這樣寬和高三三整合,一共九種情況。針對每一種情況,如果需要的話,我們可以單獨(dú)在storyboard或xib中設(shè)置UIView的自動(dòng)布局約束,甚至某一個(gè)button是否顯示都是能輕松實(shí)現(xiàn)的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容