iOS-UIStackView浅析

作者: 麦穗0615 | 来源:发表于2016-06-19 10:43 被阅读360次
    一、UIStackView简介
    • 概念:一个堆叠视图的容器,iOS9的新特性。
    • 用途:StackView及其子视图会自适应界面,减少我们设置约束的工作量。
    • 特点:
    • -类似ContainView,不会渲染到界面上。
    • -StackView中的子视图只能朝一个方向进行排布,要么水平要么垂直。
    • -StackView支持多层嵌套
    • -约束比StackView的自适应优先级高,可以通过设置约束来调整StackView的布局
    • -支持属性动画
    • -不能滚动
    • 属性:
    • -Axis轴:->用来设置子视图的排列方式(H/V)
    • -Aligement:->用来设置子视图的对齐方式
    • -Distribution->用来设置子视图的分布方式(fill-填充)
    • -spacing->子视图之间的间距


      属性展示
    二、属性详解
    • @Aligement-子视图的对齐方式
      - Fill:子视图在排列的垂直方向上填充容器
      fill填充
      - Top:子视图在排列方向上顶部对齐
      top顶部对齐
      - Center:子视图在排列方向上居中对齐
      Center居中对齐
      - Bottom:子视图在排列方向上底部对齐
      Bottom底部对齐
      - Leading:子视图在排列方向上左对齐
      leading左对齐
      - Trailing:子视图在排列方向上右对齐
      Trailing右对齐
      - First Baseline:Label子视图基于第一行文字的基线对齐,只适用于Label
      First Baseline-首行label对齐
      - Last Baseline:Label子视图基于最后一次行文字的基线对齐,只适用于Label
      Last Baseline末行label对齐
    • @Distribution-子视图的分布方式
      - Fill:子视图在排列方向上填满容器
      Fill-填满
      - Fill Equally:子视图在排列方向上填满容器,且按相等尺寸分布
      Fill Equally-按相等尺寸分布
      - Fill Proportionally:子视图在排列方向上填满容器,且按照原始比例分布
      Fill Proportionally-按照原始比例分布
      - Equal Spacing:排列方向上子视图等间距
      Equal Spacing-子视图等间距
      - Equal Centering:排列方向上子视图中心点之间的距离等间距
      Equal Centering-中心点之间的距离等间距
    • @Spacing-子视图之间的间距
      - Baseline Relation:设置spacing为上Label基线之间的间距(垂直排列时基线才会有间距)

    三、subView和arrangedSubView
    对于Stack View的子控件添加和移除,我们是这样描述的。

    • 添加-->(Stack View管理的subview)
      • addArrangedSubview:
      • insertArrangedSubview:atIndex: arrangedSubviews
        数组是subviews属性的子集。
    • 移除-->(Stack View管理的subview)
    • removeArrangedSubview:-->移除是指移除Stack View内部子控件的约束,并没有真正的把控件从父视图上移除。
    • removeFromSuperview-->从视图层次结构中删除,从父视图上删除
    四、知识点小结
    • 1、Axis表示Stack View的subview是水平排布还是垂直排布。
    • 2、Alignment控制subview对齐方式。
    • 3、Distribution定义subview的分布方式。
    • 4、Spacing 为subview间的最小间距。

    相关文章

      网友评论

        本文标题:iOS-UIStackView浅析

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