寫給本身的AutoLayout:(一)簡單View

關於AutoLayout設置的圖解翻譯,以前的有不少文章都講解,我這裏就不班門弄斧了。有興趣的能夠搜一下。翻譯

爲啥要用AutoLayout?我是可視化擁躉:

可視化
當你使用AutoLayout搭建完成一個頁面以後,可使用Preview查看是否適配不一樣的尺寸。

如何建立正確的約束,個人理解是這樣:我是誰,我在哪

  1. 我是誰:我本身的大小(height、width)
  2. 我在哪:我本身相對於父視圖或是平級視圖的位置

以上兩點適用於大部分的控件設計

舉個簡單的例子:3d

在視圖中上方放置一個UILabel,UILabel的Text居中顯示,UILabel下方放置一個UIView,UIView的位置在UILabel的左下方,以下圖所示:cdn

簡單地例子

要求UILabel 居中,距上方16點。UIView 大小100*100,距離UILabel 16點,距離左側16點。blog

  1. 首先將兩個控件拖進來,按照次序排好,當使用AutoLayout的時候,約束控件必定要有前後順序,否則容易出現混亂。爲了方便顯示,將UILabel的BackgroundColor設置爲可見色。

  1. 設置UILabel約束,左右邊距16點,上20點,高度沒有固定。

設施UILabel約束

  1. 設置UIView約束與背景色,左距16,上距16,寬高100.

設置UIView約束

  1. 設置UILabel的Text居中顯示

設置text居中

  不設置UILabel的高度,是爲了放置UILabel的字數過多,顯示不全,若是不肯定UILabel的Text長度的話,能夠不設置UILabel的高度,UILabel會根據Text長度進行自適應,固然,前提是將lines設置爲0,以下圖:ip

長text

  固然,若是你肯定label的text只有一行且不會特別長,還可使用另外一種約束方案,以下:it

設置上距20 io

設置上距20

設置水平居中 class

設置居中

顯示結果以下:可視化

顯示效果
  這種約束肯定了UILabel的位置,自身寬高會根據Label的Text屬性適應高度與寬度。

Tip:

相似標註的功能,忘記是哪一個版本更新的了

Gif圖
  選中一個控件,按住Option鍵,鼠標滑動到空間之外的地方,能夠方便的看到空間之間的距離,如此即可以與設計師提供的標註圖進行對比,查看是否一致。
相關文章
相關標籤/搜索