IOS UIStackView

UIStackView
堆叠视图,自动布局平铺不重叠控件。减少手动约束,可以嵌套。

属性:

/* 被排列子视图数组
*/
@property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *arrangedSubviews;

/* 轴向:
UILayoutConstraintAxisHorizontal:stack以水平轴向排列子视图
UILayoutConstraintAxisVertical:stack以垂直轴向排列子视图
*/
@property(nonatomic) UILayoutConstraintAxis axis;

/*分布:子视图在轴向上的分布方式
UIStackViewDistributionFill:填满
UIStackViewDistributionFillEqually:子视图等比例填充
UIStackViewDistributionFillProportionally:原比例填充
UIStackViewDistributionEqualSpacing:以等距的空白填充子视图之间的空隙,如果填充超出StackView,则按照子视图顺序进行压缩
UIStackViewDistributionEqualCentering:依据子视图的中心点来平均分配布局,保持最小间距空白等距填充。超出区域则按照顺序压缩子视图
*/
@property(nonatomic) UIStackViewDistribution distribution;

/* 对齐模式:
UIStackViewAlignmentFill:填满,水平头尾对齐,垂直上下对齐
UIStackViewAlignmentLeading:水平头对齐
UIStackViewAlignmentTop = UIStackViewAlignmentLeading:垂直上对齐
UIStackViewAlignmentFirstBaseline : 仅用于水平轴向,子视图与第一个控件基准线对齐
UIStackViewAlignmentCenter:居中对齐
UIStackViewAlignmentTrailing:垂直尾部对齐
UIStackViewAlignmentBottom = UIStackViewAlignmentTrailing:水平底部对齐
UIStackViewAlignmentLastBaseline: 仅用于水平轴向,子视图与最后一个控件基准线对齐
*/
@property(nonatomic) UIStackViewAlignment alignment;

/* 子控件间距
*/
@property(nonatomic) CGFloat spacing;

/*布局时是否参照基准线,默认是NO。
*/
@property(nonatomic,getter=isBaselineRelativeArrangement) BOOL baselineRelativeArrangement;

/* 设置布局时是否以控件的LayoutMargins为标准,默认为NO,是以控件的bounds为标准
*/
@property(nonatomic,getter=isLayoutMarginsRelativeArrangement) BOOL layoutMarginsRelativeArrangement;

方法:

/* 初始化方法,通过子视图数组初始化StackView
*/

  • (instancetype)initWithArrangedSubviews:(NSArray<__kindof UIView *> *)views;

/* 添加排列子视图
*/

  • (void)addArrangedSubview:(UIView *)view;

/* 移除排列子视图
*/

  • (void)removeArrangedSubview:(UIView )view;
    /

    按照下标插入排列子视图
    */
  • (void)insertArrangedSubview:(UIView *)view atIndex:(NSUInteger)stackIndex;

你可能感兴趣的:(IOS UIStackView)