iOS 9: UIStackView 浅析

作者: seedante | 来源:发表于2015-06-10 22:28 被阅读15803次

10/14 更新: 最近的见闻让我觉得自己的这篇浅析太过浅薄无知了。留着等有了足够好的认识后重写一下。
iOS 9中增加了新的控件:UIStackView,看下图就明白作用了。本来直接链接了官方文档的图片,不知道为何不能显示,只能再上传一次。

UIStackView Workflow

刚开始看到让我更多地想起 Word 里的文字排版,左对齐,居中之类,这里是对 UIView 子类对象排版。找相似的控件的话可以说是 LineLayout 布局的 UICollectionView,不过更加灵活,可横向可竖向,还可以在 IB 里实时看到效果。在 UICollectionView 弄成这样的布局,还得好好设置一番。

LineLayout

我想到的第一个用处就是制作一个角色海报墙,类似这种:


妇联2角色海报

这要是用 UICollectionView 来实现,要实现 dataSource 方法,在 IB 中设置 Cell,调整布局参数,而使用 UIStackView,只需要拖进去几个 UIImageView,就会自动对齐,在 IB 如下设置就会有上面的效果:

Setting

当然,这个的效果可能还有一些瑕疵,也浪费我几个时间来调整细节,但得不到满意的效果。UIStackView 虽然小巧灵活,但是要想更精致的效果,最终还得靠 UICollectionView,看到微博上有人说这个类可能是脱胎于 Apple Watch,很可能,在那么小的屏幕上,还要拖各种约束来进行对齐和调整位置真是要烦死。弄了一通,觉得用处不大吧。在推上,看见很多开发者对这个类很是兴奋:
来自 twitter 上的看法

布局

因为 UIStackView 可以嵌套,实现以上的有丝分裂很方便,要是用 UICollectionView 简直要命。还有一位开发者说,这么多年了,终于有可以不滑动的 UITableView 了。由于我经验尚浅,不知道这些需求怎么产生的,或者我的脑洞还太小,不知道这个可以方便实现什么效果。

总体而言,UIStackView 实现有对齐要求的视图布局非常非常得简单,而使用 UICollectionViewUITableView 来实现就比较麻烦;还可以实时在 IB 里预览效果。最后有点很不方便的是,因为 UIStackView 是利用 UIView 类的 intrinsicContentSize 属性来计算布局,对不同长宽比以及分辨率的图片进行对齐和位置调整不是很给力,即使用 UIView 来进行封装来一层也基本无效,除了对原图片进行缩放,暂时还没有找到好的解决方案。

相关文章

  • iOS 9: UIStackView 浅析

    10/14 更新: 最近的见闻让我觉得自己的这篇浅析太过浅薄无知了。留着等有了足够好的认识后重写一下。iOS 9中...

  • iOS9之UIStackView

    iOS9之UIStackView 苹果在iOS9新增了一个简易的布局控件UIStackView,它是一个基于 Au...

  • 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 是 iOS9新增的一个布局技术。熟练掌握相当节省布局时间。UIStackView 是...

  • UIStackView 看我就够了

    介绍 UIStackView 是 iOS9新增的一个布局技术。熟练掌握相当节省布局时间。UIStackView 是...

  • iOS - UIStackView的使用

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

  • UIStackView使用

    什么是UIStackView? UIStackView是在iOS9中才出现的,它可以帮助我们布局UI控件,从而减少...

网友评论

  • 小小猿:新的东西的使用总是需要先驱者。感谢你的文章

本文标题:iOS 9: UIStackView 浅析

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