布局方式
布局方式我知道三種:1 純代碼計算控件尺寸,不使用系統(tǒng)和第三方工具 2 使用系統(tǒng)自帶函數(shù)或者使用 Masonry 等第三方框架 3 使用系統(tǒng)自帶 StoryBoard。
StoryBoard 胡謅
1 子控件和父控件上拖拖約束就完了豌蟋。
[注] 在不同尺寸屏幕上顯示相同的內(nèi)容(對應(yīng)的果覆,子控件的大小肯定會發(fā)生變化)画饥。 2 在大尺寸屏幕上顯示更多的內(nèi)容(控件在所有屏幕上的顯示尺寸是一樣的,在大屏幕上能顯示的內(nèi)容更多) 以上兩種情況郊霎,可以查看蘋果 APP Store 參考簿透。
2 約束添加原則
1 能不多加就不多加移袍,一個控件的基本約束保證在 (1) 水平和豎直方向 (2) 寬度和高度的約束。
2 比例約束萎战、優(yōu)先級約束可以解決許多不可能的任務(wù)咐容,不要多加。
3 解決黃色警告蚂维,關(guān)注控制臺打印,及時解決路狮,不在約束問題上出錯虫啥。
[注] 1 StoryBoard 中的約束最終操作的也是控件的位置 (x,y) 和尺寸 (hight,width),不能站在后來者的角度說前者的不好奄妨。在開發(fā)中涂籽,要保持靈活性,應(yīng)該根據(jù)實際情況選擇代碼+Xib 或者 StoryBoard 來完成任務(wù)砸抛。
2 使用 StoryBoard 的幾個可能存在的問題
(1) 出現(xiàn)在控制臺上的約束問題不好調(diào)試 (目前我也沒有好的解決方法评雌,只有在對應(yīng)位置將約束刪掉重新添加)。
(2) 版本管理不好控制直焙。針對開發(fā)團(tuán)隊規(guī)模調(diào)整景东,如果 2-3 人的小團(tuán)隊,可以只使用一個 Git 分支奔誓,按照順序提交代碼斤吐。如果是中大型團(tuán)隊,可以(1)專人管理 StoryBoard (2)按模塊區(qū)分厨喂,一個模塊對應(yīng)一個 StoryBoard 文件和措。
3 最最重要的問題
一定要親自動手拖!別人寫的 StoryBoard 和 AutoLayout 的文章可以為你提供思路蜕煌,但是請自己思考為什么這么做派阱,然后不要“硬搬”文章的套路。孰能生巧斜纪。
3 關(guān)于兩種形式
3.1 不同屏幕上控件內(nèi)容相同(定間距)
此時贫母,控件肯定被拉伸了(水平伸縮故响、中心放縮、豎直伸縮等)颁独。不變的是誰彩届?控件與屏幕上下左右四條邊的距離(簡稱間距)!
水平或者豎直拉伸:以水平拉伸為例誓酒,保持控件水平位置不變(可以設(shè)置距上距離不變)樟蠕,設(shè)置到屏幕兩邊的距離為定值。
中心放縮:居中顯示的視圖 做法1:設(shè)置控件到上下左右的距離為定值靠柑,自然會被拉升寨辩。做法2:設(shè)置控件為水平豎直居中,然后設(shè)置控件的寬高和屏幕視圖之間的比例為某一個定值歼冰,同樣能實現(xiàn)靡狞。設(shè)置比例時應(yīng)該注意兩個關(guān)系控件的前后關(guān)系。
這里控件的大小一般在不同屏幕上可不是定值哦隔嫡。
3.2 大屏幕上顯示的內(nèi)容多一點(定尺寸)
在所有屏幕上的控件大小都相同甸怕,但是現(xiàn)實內(nèi)容多寡是不同的。這里的控件的大小就可以使用定值了腮恩。
例子:APP Store 中的 APP 輪播圖梢杭。
4 實現(xiàn)新浪微博的個人中心詳情頁
將約束拖到控制器中進(jìn)行動態(tài)調(diào)整。