iOS螢幕適配

2021-07-14 23:21:42 字數 1447 閱讀 6629

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...