螢幕適配
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...