ios的螢幕適配從純frame到autoresizingmask再到autolayout,
autoresizingmask ->autolayout->sizeclasses
autoresizingmask和autolayout不相容、sizeclasses依賴autolayout
autoresizingmask技術
uiview *redview = [[uiview alloc] init];
redview.backgroundcolor = [uicolor redcolor];
[self.view addsubview:redview];
redview.frame = cgrectmake([uiscreen mainscreen].bounds
.size
.width - 80, [uiscreen mainscreen].bounds
.size
.height - 80, 80, 80);
/* uiviewautoresizingflexibleleftmargin 距離父控制項的左邊是可以伸縮的
uiviewautoresizingflexiblerightmargin 距離父控制項的右邊是可以伸縮的
uiviewautoresizingflexibletopmargin 距離父控制項的頂部是可以伸縮的
uiviewautoresizingflexiblebottommargin 距離父控制項的底部是可以伸縮的
uiviewautoresizingflexiblewidth 寬度會隨父控制項進行深縮
uiviewautoresizingflexibleheight 高度會隨父控制項進行伸縮
*/redview.autoresizingmask = uiviewautoresizingflexibleleftmargin | uiviewautoresizingflexibletopmargin;
autolayout技術
autoresizingmask的侷限性:autoresizingmask僅僅只能解決子控制項和父控制項的關係。
autolayout是一種「自動布局」技術,專門用來布局ui介面的;
autolayout自ios6開始引入,由於xcode4的不給力,當時推廣不力。當iphone6/iphone6plus出來後,得到推廣。
autolayout的2個核心概念
約束:通過給控制項新增約束,來決定控制項的位置和尺寸
參照:在新增約束時,是依照誰來新增(可以是父控制項或者兄弟控制項)
autolayout的警告和錯誤
警告:控制項的實際尺寸、位置和約束的尺寸、位置不同。
錯誤:缺乏必要的約束。
兩個約束衝突:
開始新增了乙個約束,後面再新增。
iOS 螢幕適配
螢幕適配 1 螢幕適配的發展過程 計算frame autoreszing 父控制項和子控制項的關係 autolayout 任何控制項都可以產生關係 sizeclass 沒有螢幕適配,直接使用frame固定子控制項的大小 螢幕大小一樣,但是如果進行ipad開發,就需要考慮螢幕適配 螢幕大小不一樣,需要...
iOS螢幕適配
一 ios螢幕適配發展歷程 裝置適配技術 4及以前 ipad未出 直接用 計算 有了ipad autoresizing 有不同螢幕的iphone後 autolayout 有更多不同螢幕的iphone後 sizeclass 1 直接用 計算 由於螢幕的大小都一樣,只有橫豎屏的情況,可以直接計算 2 a...
IOS螢幕適配
螢幕適配一直是移動端開發乙個非常蛋疼的問題,前幾天和產品狗溝通乙個android專案,它覺得這個軟體應該在任何手機上顯示的都應該是一模一樣的,一點都不能縮放,還誇下海口,哪怕只適應一種機型,然後程式猿先生只能遺憾的說,滾蛋!其實最初的時候android和ios一樣,對一些介面都是給的固定值,在iph...