UIStackView

UIStackView主要包括了四大属性:axisalignmentdistributionspacing

  • axis
    设置UIStackView布局的方向:水平方向或垂直方向
typedef NS_ENUM(NSInteger, UILayoutConstraintAxis) {
    UILayoutConstraintAxisHorizontal = 0,
    UILayoutConstraintAxisVertical = 1
};
  • alignment
    主要设置非轴方向子视图的对齐方式
typedefNS_ENUM(NSInteger,UIStackViewAlignment) {
    UIStackViewAlignmentFill,//子视图填充
    StackViewUIStackViewAlignmentLeading,//子视图左对齐(axis为垂直方向而言)
    UIStackViewAlignmentTop=UIStackViewAlignmentLeading,//子视图顶部对齐(axis为水平方向而言)
    UIStackViewAlignmentFirstBaseline,// 按照第一个子视图的文字的第一行对齐,同时保证高度最大的子视图底部对齐(只在axis为水平方向有效)
    UIStackViewAlignmentCenter,//子视图居中对齐
    UIStackViewAlignmentTrailing,//子视图右对齐(axis为垂直方向而言)
    UIStackViewAlignmentBottom=UIStackViewAlignmentTrailing,//子视图底部对齐(axis为水平方向而言)
    UIStackViewAlignmentLastBaseline,// 按照最后一个子视图的文字的最后一行对齐,同时保证高度最大的子视图顶部对齐(只在axis为水平方向有效)
}NS_ENUM_AVAILABLE_IOS(9_0);
  • distribution
    设置轴方向上子视图的分布比例(如果axis是水平方向,也即设置子视图的宽度,如果axis是垂直方向,则是设置子视图的高度)
     UIStackViewDistributionFill = 0, 轴方向上填充UIStackView
     UIStackViewDistributionFillEqually, 所有子视图在轴方向上等宽或等高
     UIStackViewDistributionFillProportionally, 根据原先子视图的比例来拉伸或压缩子视图的宽或高
     UIStackViewDistributionEqualSpacing, 保持子视图的宽高,所有子视图中间的间隔保持一致
     UIStackViewDistributionEqualCentering, 控制所有子视图的中心之间的距离保持一致
  • spacing
    该属性控制子视图之间的间隔大小,在distribution前三个属性值设置的情况下,子视图之间是没有间隔,我们可以通过spacing属性显式的设置,如下图在distribution=UIStackViewDistributionFillEqually情况下,设置子视图间隔为10,子视图之间间隔都为10,且子视图依然等宽

你可能感兴趣的:(UIStackView)