做iOS開發(fā)8年了吧趁餐,對于一些技術(shù)還是有點模糊。也沒有學(xué)筆記的習(xí)慣弦蹂,有些問題雖然解決了矗积,但是頭腦中沒有一個清晰的思路。以至于后來遇到同樣的問題,還是需要摸索摸索。
這里主要記錄一下:
UIStackView的屬性的理解
UIStackView在 確定了大小約束 和 沒有確定大小約束 兩種情況下,子視圖的布局的不同蚌讼。
一、UIStackView的基本屬性
首先了解一下主軸个榕、縱軸的概念:
主軸: UIStackView的布局方向【布局方向是水平篡石,主軸就是水平】
縱軸:UIStackView的布局的另一個方向 【布局方向是水平,主軸是垂直】
UIStackView主要依靠axis
笛洛、distribution
夏志、alignment
、spacing
屬性進行子視圖的布局苛让。
- axis: 子視圖的布局方向沟蔑,水平和垂直
- distribution: 子視圖的主軸的布局方式
- alignment:子視圖的縱軸的對齊方式
- spacing:子視圖之間的間距
二、distribution屬性
對于Fill類型的布局:
- StackView大小不確定:通過指定子元素大小狱杰,確定StackView的大小
- StackView大小確定:子元素填充StackView的空間
-
UIStackViewDistributionFill
子元素填滿主軸方向StackView空間瘦材。
-
StackView大小約束確定:設(shè)置其他子元素的高度,留下一個子元素的高度自適應(yīng)填充StackView空間
-
StackView大小約束不確定: 所有的子元素指定高度
-
-
-
UIStackViewDistributionFillEqually
自動調(diào)整子元素在主軸方向的大小仿畸,使他們大小一致食棕,填滿整個StackView空間。
-
StackView的大小約束確定:子元素自動調(diào)整高度错沽。
-
StackView的大小約束不確定:指定一個子元素的高度簿晓,其他的子元素自動調(diào)整相同高度
-
-
UIStackViewDistributionFillProportionally
子元素根據(jù)自身Frame中的主軸大小,確定占用StackView空間的百分比千埃。
StackView大小約束確定:子元素會等比例適配
StackView大小不確定:StackView的大小會根據(jù)子元素在主軸上大小憔儿,自定適配。
-
UIStackViewDistributionEqualSpacing
: StackView的大小約束確定的情況下使用 -
UIStackViewDistributionEqualCentering
: StackView的大小約束確定的情況下使用