亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

iOS布局問題請教

iOS布局問題請教

iOS
胡說叔叔 2018-07-27 12:19:16
學習了幾天iOS(依然小白)之前是做Android的我想問下 是否有像Android那樣的可以在布局文件xml中設置高度呢現在我只知道在xib中設置了 無效 是不是iOS要控制view的高度 必須要在代碼中通過CGRectMake來設置嗎
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

能否貼下xib截圖和代碼,有些情況是默認開啟了autolayout

查看完整回答
反對 回復 2018-07-31
?
慕婉清6462132

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的各種用法之后,就會覺得這同樣是一個方便且更加強大的工具。


查看完整回答
反對 回復 2018-07-31
  • 3 回答
  • 0 關注
  • 732 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號