iOS 螢幕適配

2021-07-11 07:30:24 字數 1374 閱讀 5146

螢幕適配

1、螢幕適配的發展過程:

**計算frame -> autoreszing(父控制項和子控制項的關係) -> autolayout(任何控制項都可以產生關係) -> sizeclass

沒有螢幕適配,直接使用frame固定子控制項的大小

螢幕大小一樣,但是如果進行ipad開發,就需要考慮螢幕適配

螢幕大小不一樣,需要考慮螢幕適配(使用autoresizing/autolayout實現)

autoresizing:ios7之前經常使用

autolayout:ios6開始出現,ios7之後大範圍使用

sizeclass:ios8開始出現,解決橫豎屏和iphone、ipad共同開發

2、autoreszing

- 需要去除autolayout選項,因為這兩個屬性衝突。view的autoresizessubviews屬性為yes時(預設為yes),autoresizing才會生效

- 從xcode6開始,storyboard&xib預設是自動布局,因此我們需要手動調整,才能使用autoresizing

- autoresizing的侷限性

它只能描述父子控制項之間的布局關係,而不能描述子控制項與子控制項之間的布局關係

3、autolayout

要先禁止autoresizing功能,設定view的下面屬性為no

view.translatesautoresizingmaskintoconstraints = no;

> 新增約束之前,一定要保證相關控制項都已經在各自的父控制項上

> 不用再給view設定frame

使用autolayout不再需要設定子控制項的frame

-好處:

警告和錯誤

1)、警告(黃色提示)

* 控制項的frame不匹配所新增的約束, 比如比如約束控制項的寬度為100, 而控制項現在的寬度是110

2)、錯誤(紅色提示)

* 缺乏必要的約束, 比如只約束了寬度和高度, 沒有約束具體的位置

* 兩個約束衝突, 比如1個約束控制項的寬度為100, 1個約束控制項的寬度為110

4、sizeclass

僅僅是對螢幕進行了分類, 真正排布ui元素還得使用autolayout

* 不再有橫豎屏的概念, 只有螢幕尺寸的概念

* 不再有具體尺寸的概念, 只有抽象尺寸的概念

* 把寬度和高度各分為3種情況

1) compact : 緊湊(小)

2) any : 任意

3) regular : 寬鬆(大)

4) 符號代表

- : compact

* : any

+ : regular

iOS螢幕適配

ios的螢幕適配從純frame到autoresizingmask再到autolayout,autoresizingmask autolayout sizeclassesautoresizingmask和autolayout不相容 sizeclasses依賴autolayout autoresizin...

iOS螢幕適配

一 ios螢幕適配發展歷程 裝置適配技術 4及以前 ipad未出 直接用 計算 有了ipad autoresizing 有不同螢幕的iphone後 autolayout 有更多不同螢幕的iphone後 sizeclass 1 直接用 計算 由於螢幕的大小都一樣,只有橫豎屏的情況,可以直接計算 2 a...

IOS螢幕適配

螢幕適配一直是移動端開發乙個非常蛋疼的問題,前幾天和產品狗溝通乙個android專案,它覺得這個軟體應該在任何手機上顯示的都應該是一模一樣的,一點都不能縮放,還誇下海口,哪怕只適應一種機型,然後程式猿先生只能遺憾的說,滾蛋!其實最初的時候android和ios一樣,對一些介面都是給的固定值,在iph...