iOS 螢幕適配之sizeclass

2022-08-19 04:12:09 字數 1507 閱讀 7862

1> 3gs\4\4s時代:沒有螢幕適配一說,尺寸只有乙個,直接用**計算frame就行了

2> ipad出現:為應對橫豎屏,蘋果推出autoresizing,它的作用是讓子控制項能跟隨父控制項做拉伸.如下圖,autoresizing可以讓紅色的子控制項的寬度始終鋪滿螢幕

3> 5\5c\5s的出現:autoresizng不夠用了,因為它只能解決父子關係控制項的排布問題,解決不了兄弟關係控制項之間的位置關係,所以autolayout出現了.

autolayout,可以在任意2個控制項之間建立位置關係

4> 6\6plus的出現:autolayout又不夠用了,sizeclass可以實現autolayout做不到需求

autolayout不夠用的原因:

a>universal的專案,有2套storyboard,一套是給iphone用,另一套給ipad用的,這就意味著需要對每一套storyboard,設定約束

b>非universal專案,比如iphone專案,autolayout無法實現 不同尺寸的iphone使用不同的布局方案

1>sizeclass 僅僅是對螢幕進行了分類,真正排布ui元素的還是autolayout

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

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

2.1 抽象尺寸:把長和寬各分為3種:分別是compact(緊湊的),any,regular(寬鬆)

1>這樣一劃分,螢幕尺寸就9種排列組合:

2>在不同螢幕尺寸型別下,可以為控制項新增不同的約束條件

3>可以讓同乙個imageview,在不同的螢幕尺寸洗,顯示不同的

4>還可以讓label在不同的螢幕尺寸下,顯示不同的font

5>符號解釋:

- compact

* any

+ regular

6>注意尺寸的繼承性: any width | any height 是base values for all layouts,也就是說在any width | any height尺寸型別下,給控制項新增的約束會影響到其他尺寸型別.例如下面這兩約束會報警告.

在any width | any height 給button新增了和左邊界固定距離的約束,

在compact width | compact height 給button新增了和右邊界固定距離的約束,

iOS螢幕螢幕適配之 Auto Layout 1

在iphone4s及其之前的iphone,螢幕尺寸一直是固定的3.5英吋,硬體解析度為320 480。那時候不存在螢幕適配的問題 當然排除同時相容ipad和iphone 直接用比較粗暴的方式把乙個view的位置寫死,比如下面的 void viewdidload產生的效果如下 從中可以看到,建立nsl...

iOS 螢幕適配

螢幕適配 1 螢幕適配的發展過程 計算frame autoreszing 父控制項和子控制項的關係 autolayout 任何控制項都可以產生關係 sizeclass 沒有螢幕適配,直接使用frame固定子控制項的大小 螢幕大小一樣,但是如果進行ipad開發,就需要考慮螢幕適配 螢幕大小不一樣,需要...

iOS螢幕適配

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