美文网首页
UIStackView相关属性了解使用

UIStackView相关属性了解使用

作者: 小秀秀耶 | 来源:发表于2018-11-02 17:07 被阅读0次

    iOS 9 提供的UIStackView简化了布局操作,用于平铺一行或者一列的的视图组合,它有些像Android中的liner layout

    例如:实现一行有三个图片,某种情况下变成两个,只需要将三个图片放入UIStackView ,将其中一个图片隐藏即可实现,无需修改任何约束

    UIStackView 继承自UIView,但其实一个视图容器,是一个不会被渲染的UIView的子类,这意味着设置其backgroundColor和重载drawRect方法都不会产生任何效果,它会对它的子视图根据一定规则自动布局

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

    有如下几个比较重要的属性:

         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, // 按照第一个子视图的文字的第一行对齐,同时保证高度最大的子视图底部对齐(只在axis为水平方向有效)
    
    UIStackViewAlignmentCenter,//子视图居中对齐
    
    UIStackViewAlignmentTrailing,//子视图右对齐(axis为垂直方向而言)
    
    UIStackViewAlignmentBottom = UIStackViewAlignmentTrailing,//子视图底部对齐(axis为水平方向而言)
    
    UIStackViewAlignmentLastBaseline, // 按照最后一个子视图的文字的最后一行对齐,同时保证高度最大的子视图顶部对齐(只在axis为水平方向有效)
    
    

    distribution

    UIStackViewDistributionFill//子视图填满父视图
    UIStackViewDistributionFillEqually//使所有子视图在轴方向上等宽或等高
    UIStackViewDistributionFillProportionally//根据原先子视图的比例来拉伸或压缩子视图的宽或高
    UIStackViewDistributionEqualSpacing//所有子视图中间的间隔保持一致
    UIStackViewDistributionEqualCentering//所有子视图的中心之间的距离保持一致
    
    

    但是我们stackView有可能没有设置Frame,此时设置distribution还比较复杂,可以参考stackView的distribution详解

    参考文章

    使用Storyboard了解UIStackView

    stackView的distribution详解

    UIStackView体验

    iOS中UIStackView相关属性理解

    相关文章

      网友评论

          本文标题:UIStackView相关属性了解使用

          本文链接:https://www.haomeiwen.com/subject/xlecxqtx.html