iOS一步步学习ios

UIStackView

2021-07-25  本文已影响0人  yyggzc521

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

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

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

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

设置一个元素后面的边距

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

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

上一篇 下一篇

猜你喜欢

热点阅读