open var axis: NSLayoutConstraint.Axis // 子控件布局方向(水平或者垂直),也就是下面说的轴方向,
/**
case fill 沿轴方向填充视图.会按照优先级压缩或者拉伸子视图
case fillEqually 沿轴方向使子视图等宽或者等高
case fillProportionally 沿轴方向按照`intrinsic content`的比例压缩或者拉伸
case equalSpacing 沿轴按照优先级压缩或者拉伸子视图,使间隙相等
case equalCentering 沿轴方向子视图中心等分
*/
open var distribution: UIStackView.Distribution // 轴方向的控件布局方式
/**
case fill 垂直于轴方向填充视图
case center 子视图中心和轴线重合
case leading .vertical 情况下使用,垂直于轴方向靠左
case trailing .vertical 情况下使用,垂直于轴方向靠右
case top .horizontal 情况下使用,子视图
public static var bottom: UIStackView.Alignment { get } .horizontal 情况下使用
case firstBaseline .horizontal 情况下使用, 按照第一个子视图的baseline对齐,并保证最高视图底部对齐
case lastBaseline .horizontal 情况下使用, 按照最后一个子视图的baseline对齐,并保证最高视图顶部对齐
*/
open var alignment: UIStackView.Alignment // 非轴方向的控件布局方式
open var spacing: CGFloat // 子控件的最小间距
https://www.jianshu.com/p/f475c9284bd7
axis :布局方向(UILayoutConstraintAxis),包括2个值
水平布局(UILayoutConstraintAxisHorizontal)
垂直布局(UILayoutConstraintAxisVertical)
spacing:设置视图之间的间距
alignment:管理视图的对齐模式
typedef NS_ENUM(NSInteger, UIStackViewAlignment) {
UIStackViewAlignmentFill, //水平布局时为高度充满,竖直布局时为宽度充满
UIStackViewAlignmentLeading, //前边对其
UIStackViewAlignmentTop = UIStackViewAlignmentLeading, //顶部对其
UIStackViewAlignmentFirstBaseline, //第一个控件文字的基线对其 水平布局有效
UIStackViewAlignmentCenter, //中心对其
UIStackViewAlignmentTrailing, //后边对其
UIStackViewAlignmentBottom = UIStackViewAlignmentTrailing, //底部对其
UIStackViewAlignmentLastBaseline, //基线对其,水平布局有效
} NS_ENUM_AVAILABLE_IOS(9_0);
distribution:管理视图的排序方式
typedef NS_ENUM(NSInteger, UIStackViewDistribution) {
UIStackViewDistributionFill = 0, //充满,并且根据内部子视图尺寸对子视图尺寸进行动态调整
UIStackViewDistributionFillEqually, //平分充满,每个控件占据相同尺寸排列充满
UIStackViewDistributionFillProportionally, //根据之前的比例填充
UIStackViewDistributionEqualSpacing, //等间距排列
UIStackViewDistributionEqualCentering, //所有子视图的中心之间的距离保持一致
} NS_ENUM_AVAILABLE_IOS(9_0);
网友评论