美文网首页
【UIKit】UIStackView

【UIKit】UIStackView

作者: 居然是村长 | 来源:发表于2019-12-20 16:47 被阅读0次

UIStackView

UIStackView : UIView
iOS 9.0

  • 基于 Flexbox 思想的布局方式,所以过来看一下 API
  • 简单来说就是个 View 容器,运用 AutoLayout 对内部视图自动添加约束,实现一些常用的布局

一、初始化

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


- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

二、管理子视图

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

// 添加
- (void)addArrangedSubview:(UIView *)view;
// 移除
- (void)removeArrangedSubview:(UIView *)view;
// 插入
- (void)insertArrangedSubview:(UIView *)view atIndex:(NSUInteger)stackIndex;

三、约束配置

// 布局主方向
@property(nonatomic) UILayoutConstraintAxis axis;

// 对齐方式
@property(nonatomic) UIStackViewAlignment alignment;

// 分布方式
@property(nonatomic) UIStackViewDistribution distribution;

// 容器等间距值
@property(nonatomic) CGFloat spacing;


// 纵向布局时,是和以 baseline 为基准,默认 NO
@property(nonatomic,getter=isBaselineRelativeArrangement) BOOL baselineRelativeArrangement;

// 是否使用 LayoutMargin 标准,一般不用,默认 NO
@property(nonatomic,getter=isLayoutMarginsRelativeArrangement) BOOL layoutMarginsRelativeArrangement;    

四、自定义间距

// 设置自定义间距
- (void)setCustomSpacing:(CGFloat)spacing afterView:(UIView *)arrangedSubview API_AVAILABLE(ios(11.0),tvos(11.0));

// 获取自定义间距
- (CGFloat)customSpacingAfterView:(UIView *)arrangedSubview API_AVAILABLE(ios(11.0),tvos(11.0));


// 无穷大
static const CGFloat UIStackViewSpacingUseDefault API_AVAILABLE(ios(11.0),tvos(11.0)) = FLT_MAX;

// 0
static const CGFloat UIStackViewSpacingUseSystem API_AVAILABLE(ios(11.0),tvos(11.0)) = FLT_MIN;

五、常量

  • UIStackViewAlignment 对齐方式
typedef NS_ENUM(NSInteger, UIStackViewAlignment) {
    // 填充方式(横纵)
    UIStackViewAlignmentFill,
    
    // 靠左(纵)
    UIStackViewAlignmentLeading,
    // 靠上(横)
    UIStackViewAlignmentTop = UIStackViewAlignmentLeading,
    // 靠上基线(横)
    UIStackViewAlignmentFirstBaseline,
    
    // 居中(横纵)
    UIStackViewAlignmentCenter,
    
    // 靠右(纵)
    UIStackViewAlignmentTrailing,
    // 靠下(横)
    UIStackViewAlignmentBottom = UIStackViewAlignmentTrailing,
    // 靠下基线(横)
    UIStackViewAlignmentLastBaseline,
} API_AVAILABLE(ios(9.0));
  • UIStackViewDistribution 填充方式
typedef NS_ENUM(NSInteger, UIStackViewDistribution) {
    // 普通填充
    UIStackViewDistributionFill = 0,
    
    // 等宽(横)、高(纵)填充
    UIStackViewDistributionFillEqually,
    
    // 按比例适应屏幕
    UIStackViewDistributionFillProportionally,

    // 等间距
    UIStackViewDistributionEqualSpacing,
    
    // 等中心距
    UIStackViewDistributionEqualCentering,
} API_AVAILABLE(ios(9.0));

相关文章

  • 【UIKit】UIStackView

    UIStackView UIStackView : UIViewiOS 9.0 基于 Flexbox 思想的布局方...

  • iOS - UIStackView的使用

    UIStackView 在iOS9中苹果在UIKit框架中引入了一个新的视图类UIStackView。UIStac...

  • UIStackView详解

    1. 概念 苹果在iOS9中UIKit框架引入一个新的视图类UIStackView:UIStackView视图 管...

  • 优雅的使用UIStackView

    UIStackView是iOS9苹果在UIKit框架中引入了一个新的视图类,开发者仅需设置很少,甚者不需要设置任何...

  • iOS9 新特新介绍

    一. UIStackView 新控件:UIStackView 栈视图, 类似AppleWatch的Group 父类...

  • StackView

    我的博客, 各位看官有时间赏光 UIStackView UIStackView介绍 随着autolayout的推广...

  • UIStackView的应用

    UIStackView的定义 UIStackView控件有两种,横向布局和纵向布局 Axis:设置UIStackV...

  • UIStackView 初探(译)

    UIStackView 用于在列或行中布局视图集合的线性接口。 UIStackView 概览 UIStackVie...

  • UIStackView的妙用

    UIStackView简介 UIStackView是iOS 9+支持的布局控件,主要用于线性布局,可以简化布局,减...

  • iOS9新特性UIStackView

    概述 UIStackView是iOS9中新增的API,类似于Android中的线性布局。UIStackView提供...

网友评论

      本文标题:【UIKit】UIStackView

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