天天看點

iOS 自動布局 Auto Layout 入門 02 使用自動布局

在上一節中,我們使用autosizing+代碼的方法使三個view按我們的需求顯示在應用程式中,這一節,我們使用Auto Layout來實作同樣的功能。

轉載請注明出處:http://blog.csdn.net/yamingwu/article/details/44132637

删除willAnimateRotationToInterfaceOrientation方法并enable auto layout:

iOS 自動布局 Auto Layout 入門 02 使用自動布局

編譯運作程式,并将裝置旋轉至橫屏狀态:

iOS 自動布局 Auto Layout 入門 02 使用自動布局

這并不是我們想要的效果。

下面,我們開始使用Auto Layout。選中綠色和黃色的view,從Xcode的Editor菜單選擇Pin\Widths Equally和\Pin\Horizontal Spacing。橙色的T型代表view之間的限制(constraints)。此時,我們設定這兩個view是等寬的,并且在它們之間有一個水準距離的限制。

iOS 自動布局 Auto Layout 入門 02 使用自動布局

接下來,我們執行以下操作,為整個界面添加自動布局限制。

對于左側的view,選擇Editor\Pin菜單,添加以下限制:

  • Top Space to Superview
  • Leading Space to Superview

對于右側的view,選擇Editor\Pin菜單,添加以下限制:

  • Top Space to Superview
  • Trailing Space to Superview

對于下方的view,選擇Editor\Pin菜單,添加以下限制:

  • Leading Space to Superview
  • Trailing Space to Superview
  • Bottom Space to Superview

至此,我們将看到如下限制:

iOS 自動布局 Auto Layout 入門 02 使用自動布局

但是,還有一些限制是橙色而不是藍色的,這就意味着我們的布局還沒有完成。自動布局沒有足夠的限制來計算view的位置和大小。我們需要添加更多的限制,讓所有的限制都成為藍色。

同時選中3個view,從Editor菜單選擇Pin\Heights Equally。再選中左側的view和下面的view,選擇Editor\Pin\Vertical Spacing。

此時,我們的Interface Builder如下圖所示,所有的限制都是藍色了。

iOS 自動布局 Auto Layout 入門 02 使用自動布局

編譯運作,并将裝置旋轉為橫屏,效果如下:

iOS 自動布局 Auto Layout 入門 02 使用自動布局

這正是我們所期望的效果。使用自動布局,我們不需要任何的代碼,而是通過設定view之間的限制,來實作需求。

我們來回顧一下,我們添加了什麼樣的限制:

  • 左上的view和右上的view擁有相同的寬度。
  • 左上的view和右上的view之間有20點的水準間隔。
  • 所有3個view都有相同的高度。
  • 上面的兩個view和下面的view之間有20點的間隔。
  • 這3個view和螢幕的邊界之間有20個點的間隔,包括上、下、前、後四個方向。

選中左上view後右上view之間的水準間距限制:

iOS 自動布局 Auto Layout 入門 02 使用自動布局

可以看到,限制的屬性也是可以修改的,因為限制也是一個真實的類(NSLayoutConstraint)。我們修改Constant字段為100,将左上view和右上view之間的間距設定為100,程式執行效果如下:

iOS 自動布局 Auto Layout 入門 02 使用自動布局