iOS9自動布局神器StackView


http://www.jianshu.com/p/767f72b7d754

 

     這篇文章緊跟上邊autolayout的一些小技巧,如果你沒有看過,不防先看下《你真的會用autolayout嗎?》這篇文章。上篇講到autolayout的一些小技巧,但是還是免不了要加那些煩人的約束,自己去計算約束。而且autolayout出來這么久了,依然有好多應用在用手動布局。當然不是說手動布局有什么不好,有些特別復雜的界面還是要用手動布局的。主要是現在的autolayout對稍微復雜一些的界面加約束是特別頭疼的一件事情,約束太多了,而且好多是重復繁雜的。iOS9新特性StackView,讓適配變得非常簡單,你甚至不用加約束。只需要簡單設置幾個屬性。不多說,還是老規矩先上圖。


StackView

      可以看到,我這里除了最外面的垂直StackView加了上下左右四個約束,其余的沒有加一個約束,就適配了。

     由於這里步驟較多,分開講解一下

 


Vertical Stack View

首先添加一個縱向的StackView。這里不多解釋。

 


屬性

這里解釋一下這幾個屬性的含義:

Axis:StackView的布局屬性(水平和垂直兩個方向)

Alignment:設置子視圖的對其方式(水平和垂直有所差別)

    1)Fill:子視圖填充StackView。

    2)Leading:靠左對齊。

    3)Trailing:靠右對齊。

    4)Center:子視圖以中線為基准對齊。

    5)Top:靠頂部對齊。

    6)Bottom:靠底部對齊。

    7)First Baseline:按照第一個子視圖中文字的第一行對齊。

    8)Last Baseline:按照最后一個子視圖中文字的最后一行對齊。

Distribution:設置子視圖的分布比例

    1)Fill:默認分布方式。

    2)Fill Equally:子視圖的高度或寬度保持一致。

    3)Fill:Proportionally:StackView自己計算出它認為合適的分布方式。

    4)Equal Spacing:子視圖保持同等間隔的分布方式。

    5)Equal Centering:每個子視圖中心線之間保持一致的分布方式。

Spacing:設置子視圖之間的間距

 


Horizontal Stack View

然后向垂直StackView中放三個水平StackView,可以看出StackView是可以嵌套的,三個水平StackView按照之前設置好的屬性,等寬登高,間距為10排列。我這里設置三個水平StackView的屬性是全選統一設置的。

 


扔子視圖

這步沒什么要解釋的,扔子視圖就行了,不用加一個約束。

 

下面再試下在iPhone5上效果


適配

      StackView只在iOS8和iOS9上能用,iOS7不支持,所以這半年用到的應該不會太多,根據以往慣例,明年估計將有很多應用不再對iOS7適配,StackView讓適配變得非常簡單。這里僅以9宮格為例,當然StackView還有很多強大之處。尤其是對於動態單元格的布局,更加有利。我這里就不再過多介紹,后面有可能我會把,我項目里面有動態單元格的用StackView單獨做一個出來。

收工,感謝支持!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM