UIStackView之一问一答

前言

此篇文章作为在使用UIStackView前的一些答疑,既是扫盲篇,也是实用篇。以下会讲述一些实用的案例,目的就是让更多的人拥抱UIStackView。同时欢迎小伙伴通过评论区讲讲使用StackView遇到的问题。

答疑

排列视图间距大小不一

问:排列视图间距大小不一,可以用UIStackView吗?
答:当然可以用,UIStackView虽然有space属性,但是适用于所有的排列视图,如果想要指定某个排列视图之间的间距,有以下两种方法:

  • 使用 - (void)setCustomSpacing:(CGFloat)spacing afterView:(UIView *)arrangedSubview API_AVAILABLE(ios(11.0),tvos(11.0));方法,不过这个方法有版本的限制。
  • 使用一个UIView进行填充;即在需要间隙的位置插入一个空的view,并设置好其宽度或高度来充当两个排列视图的间距。

排列视图对齐位置不一致

问:排列视图的对齐位置不一致,如何使用UIStackView?
答:我们可以选择一种合适的对齐方式保证适用于绝大多数排列视图,剩下的视图使用UIView进行封装,然后在View中进行约束布局。

排列视图大小不一致

问:排列视图的大小不一致,可以用UIStackView吗?
答:可以的,UIStackView中的排列视图不需要设置位置,至于尺寸大小可以根据自身需要设置。(设置方式AutoLayout

灵活多变的UI设计

问:多变的UI设计适合使用UIStackView吗?
答:再合适不过了,为什么这么说呢,虽然通过AutoLayout可以自适应,来解决灵活多变的UI布局,但是这会有繁琐的代码来控制。而通过使用UIStackView,我们仅添加一次排列视图,而后可以通过控制排列视图的显示或隐藏(hidden)就能使UIStackView重新布局。

列表可用?

问:UIStackView可以用于列表布局吗?
答:可以,使用UIStackView可以快捷的布局简单列表,相比较UITableView较为简单,使用UITableView往往需要设置代理,实现代理等。
具体做法:一般采用UIScrollView + UIStackView,ScrollView控制滚动,StackView管理内容。

The end

总而言之,如果你怕麻烦,那就快来使用UIStackView,把麻烦事都交给它。

如果有比较难以理解或者初学者不懂的问题,稍后也会在这整理。

你可能感兴趣的:(UIStackView之一问一答)