UIStackView相關(guān)屬性了解使用

iOS 9 提供的UIStackView簡化了布局操作,用于平鋪一行或者一列的的視圖組合,它有些像Android中的liner layout

例如:實(shí)現(xiàn)一行有三個(gè)圖片,某種情況下變成兩個(gè),只需要將三個(gè)圖片放入UIStackView ,將其中一個(gè)圖片隱藏即可實(shí)現(xiàn),無需修改任何約束

UIStackView 繼承自UIView,但其實(shí)一個(gè)視圖容器,是一個(gè)不會被渲染的UIView的子類,這意味著設(shè)置其backgroundColor和重載drawRect方法都不會產(chǎn)生任何效果,它會對它的子視圖根據(jù)一定規(guī)則自動(dòng)布局

快速了解UIStackView參考 使用Storyboard了解UIStackView

有如下幾個(gè)比較重要的屬性:

     1、axis:定義subview的排布方式(水平還是垂直)
     2、alignment:定義subview對齊方式
     3、distribution:定義subview的分布方式
     4、spacing: 定義subview間的最小間距。

axis

UILayoutConstraintAxisHorizontal = 0, 水平排布
UILayoutConstraintAxisVertical = 1 垂直排布

alignment

UIStackViewAlignmentFill,//子視圖填充StackView

UIStackViewAlignmentLeading,//子視圖左對齊(axis為垂直方向而言)

UIStackViewAlignmentTop = UIStackViewAlignmentLeading,//子視圖頂部對齊(axis為水平方向而言)

UIStackViewAlignmentFirstBaseline, // 按照第一個(gè)子視圖的文字的第一行對齊,同時(shí)保證高度最大的子視圖底部對齊(只在axis為水平方向有效)

UIStackViewAlignmentCenter,//子視圖居中對齊

UIStackViewAlignmentTrailing,//子視圖右對齊(axis為垂直方向而言)

UIStackViewAlignmentBottom = UIStackViewAlignmentTrailing,//子視圖底部對齊(axis為水平方向而言)

UIStackViewAlignmentLastBaseline, // 按照最后一個(gè)子視圖的文字的最后一行對齊,同時(shí)保證高度最大的子視圖頂部對齊(只在axis為水平方向有效)

distribution

UIStackViewDistributionFill//子視圖填滿父視圖
UIStackViewDistributionFillEqually//使所有子視圖在軸方向上等寬或等高
UIStackViewDistributionFillProportionally//根據(jù)原先子視圖的比例來拉伸或壓縮子視圖的寬或高
UIStackViewDistributionEqualSpacing//所有子視圖中間的間隔保持一致
UIStackViewDistributionEqualCentering//所有子視圖的中心之間的距離保持一致

但是我們stackView有可能沒有設(shè)置Frame,此時(shí)設(shè)置distribution還比較復(fù)雜,可以參考stackView的distribution詳解

參考文章

使用Storyboard了解UIStackView

stackView的distribution詳解

UIStackView體驗(yàn)

iOS中UIStackView相關(guān)屬性理解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容