3 回答

TA貢獻1804條經驗 獲得超2個贊
答主也是寫了好幾年Android才過來iOS的技術渣。一開始感覺iOS各種不爽,然而寫了幾個月習慣了之后,竟然發現反而我已經沒法寫好Android了。因為iOS其實寫起來比我最初想象的要方便的多,也比Android方便的多。
至于我初學時排斥iOS開發的原因,很大程度上歸結于Xcode有點糟糕的體驗。Xcode有一個很大的毛?。好髅骱芊奖愫艹S玫墓δ?,卻放在角落里當圖標,連提示都不給。
Interface Builder的AutoLayout約束功能——就是放在可視化編輯區域右下角的四個不起眼的小圖標——也是如此。選中一個控件,點第二個按鈕,可以設置水平垂直居中約束;點第三個按鈕可以設置與上下左右最近控件的距離、固定寬度、固定高度、固定寬高比;最后一個按鈕用于按設置好的約束更新視圖。這四個按鈕功能甚至還更強大:如果按住command多選一些控件,可以設置多個控件對齊等。
一旦控件被設置了約束,它就有了隱式的自適應內容的趨勢,除非強制設置了一些約束改變它的大小。
如果多個UILabel之類的自適應內容的控件排列在一起,還要注意一下右側屬性欄“尺寸”標簽最下方的Content Hugging Priority和Content Compression Resistance Priority。答主詞匯淺薄,暫時描述不清楚這個功能,只能說有點像Android中的layout_weight。
AutoLayout的思想也是從Android轉到iOS的開發者要特別注意的,尤其是約束的數量要恰到好處,既不能少到出現歧義,又不能多到發生沖突;每個控件的約束必須足以確定它的水平位置、垂直位置、寬度和高度(UILabel等可以自適應內容,則不需要確定寬度和高度)。
在答主自己的實踐過程中,AutoLayout可以實現很多Android Layout不能實現的需求(也可能是因為答主對Android了解不夠)。所以說雖然初學者可能感覺AutoLayout不如Android Layout方便,但是當開發者掌握了AutoLayout的各種用法之后,就會覺得這同樣是一個方便且更加強大的工具。
- 3 回答
- 0 關注
- 732 瀏覽
添加回答
舉報