UIStackView

作者: yyggzc521 | 来源:发表于2021-07-25 00:25 被阅读0次

UIStackView 顾名思义是一个视图堆栈 ,换句话说就是个容器。

和传统容器类的区别:虽然继承自 UIView,但本身不能自我渲染,如设置它的 backgroundColor 是无效的。主要的作用是处理子View 的位置、大小和布局。

适用场景:就像 iPad 、笔记本 、手机的关系,谁也代替不了谁,各有所长。像那些手写Constraint太繁琐,用TableView/CollectionView 又太笨重的情况,就比较适合StackView。如下图👇🏻

stackView的适用场景.png

用法

====第一种创建方式
let stackView = UIStackView()
view.addSubview(stackView)
stackView.addArrangedSubview(subView1)
stackView.addArrangedSubview(subView2)
====第二种创建方式
let stackView = UIStackView(arrangedSubviews: [subView1, subView2])

把子View加到StackView ,调用的不是传统的 addSubview,而是addArrangedSubview

addSubview添加的子view,它们的顺序实际上是图层覆盖,也就是z轴
arrangedSubviews添加的子view,它们的顺序是并列的,即视x轴和y轴

stackView of view hierarchy.png

StackView 有几个重要的属性

axis

  • horizontal 水平方向 (默认)
  • vertical 垂直方向

distribution 分布:描述和 axis 方向一致的元素之间的布局关系

  • fill (默认)
  • fillEqually 等宽/高 布局
  • fillProportionally 按比例布局
  • equalSpacing 等间距布局
  • equalCentering 等中间线间距布局

alignment:描述和 axis 垂直的元素之间的布局关系

  • fill (默认) 尽可能铺满
  • center 居中对齐
  • leading 当 axis 是 vertical 的时候,按 leading 方向对齐 等价于: 当 axis 是 horizontal 的时候,按 top 方向对齐
    spacing
    元素之间的边距值

自定义边距能力( iOS11+ 的特性)

设置一个元素后面的边距

func setCustomSpacing(_ spacing: CGFloat, 
          after arrangedSubview: UIView)

参考资料:
https://juejin.im/post/5c2ee162e51d4550fc42ac57

相关文章

  • 【UIKit】UIStackView

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

  • 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提供...

  • UIStackView简单理解和使用

    一、UIStackView简介 UIStackView是iOS9中新增的API,类似于Android中的线性布局。...

  • iOS UIStackView

    简介 UIStackView是iOS 9 的新增控件,唯一的作用就是帮助布局 本文会详细介绍UIStackView...

  • UIStackView学习笔记

    UIStackView UIStackView能够利用,创建能够动态适应设备方向、屏幕大小和可用空间中任何更改的用...

网友评论

    本文标题:UIStackView

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