http://www.jianshu.com/p/767f72b7d754

这篇文章紧跟上边autolayout的一些小技巧,如果你没有看过,不防先看下《你真的会用autolayout吗?》这篇文章。上篇讲到autolayout的一些小技巧,但是还是免不了要加那些烦人的约束,自己去计算约束。而且autolayout出来这么久了,依然有好多应用在用手动布局。当然不是说手动布局有什么不好,有些特别复杂的界面还是要用手动布局的。主要是现在的autolayout对稍微复杂一些的界面加约束是特别头疼的一件事情,约束太多了,而且好多是重复繁杂的。iOS9新特性StackView,让适配变得非常简单,你甚至不用加约束。只需要简单设置几个属性。不多说,还是老规矩先上图。

StackView

可以看到,我这里除了最外面的垂直StackView加了上下左右四个约束,其余的没有加一个约束,就适配了。

由于这里步骤较多,分开讲解一下

Vertical Stack View

首先添加一个纵向的StackView。这里不多解释。

属性

这里解释一下这几个属性的含义:

Axis:StackView的布局属性(水平和垂直两个方向)

Alignment:设置子视图的对其方式(水平和垂直有所差别)

1)Fill:子视图填充StackView。

2)Leading:靠左对齐。

3)Trailing:靠右对齐。

4)Center:子视图以中线为基准对齐。

5)Top:靠顶部对齐。

6)Bottom:靠底部对齐。

7)First Baseline:按照第一个子视图中文字的第一行对齐。

8)Last Baseline:按照最后一个子视图中文字的最后一行对齐。

Distribution:设置子视图的分布比例

1)Fill:默认分布方式。

2)Fill Equally:子视图的高度或宽度保持一致。

3)Fill:Proportionally:StackView自己计算出它认为合适的分布方式。

4)Equal Spacing:子视图保持同等间隔的分布方式。

5)Equal Centering:每个子视图中心线之间保持一致的分布方式。

Spacing:设置子视图之间的间距

Horizontal Stack View

然后向垂直StackView中放三个水平StackView,可以看出StackView是可以嵌套的,三个水平StackView按照之前设置好的属性,等宽登高,间距为10排列。我这里设置三个水平StackView的属性是全选统一设置的。

扔子视图

这步没什么要解释的,扔子视图就行了,不用加一个约束。

下面再试下在iPhone5上效果

适配

StackView只在iOS8和iOS9上能用,iOS7不支持,所以这半年用到的应该不会太多,根据以往惯例,明年估计将有很多应用不再对iOS7适配,StackView让适配变得非常简单。这里仅以9宫格为例,当然StackView还有很多强大之处。尤其是对于动态单元格的布局,更加有利。我这里就不再过多介绍,后面有可能我会把,我项目里面有动态单元格的用StackView单独做一个出来。

收工,感谢支持!

iOS9自动布局神器StackView相关推荐

  1. [译]Stack View 自定义间隙

    翻译自:https://useyourloaf.com/blog/stack-view-custom-spacing/ Apple 在 iOS9 引入了 StackView,使用它可以减少约束的数量, ...

  2. Stack View 自定义间隙

    翻译自:https://useyourloaf.com/blog/... Apple 在 iOS9 引入了 StackView,使用它可以减少约束的数量,让使用 AutoLayout 更加容易.但有一 ...

  3. unity 刷新layout_【Unity源码学习】Layout

    前言:Layout是UI自动布局神器,但是大量使用,性能又是令人捉急的,还有一个毛病就是,要获取content真实size的时候,总是要延迟一帧才能拿到真实数据,让我们来研究一下layout的实现 在 ...

  4. iOS9的新特性以及适配方案

    1. 限制HTTP协议,全部改用更安全的HTTPS iOS9让所有的HTTP默认使用了HTTPS,原来的HTTP协议传输都改成TLS1.2协议进行传输.直接造成的情况就是App发请求的时候弹出网络无法 ...

  5. 更加优雅的iOS自动布局

    因为懒,所以之前几乎不用代码进行自动布局.但是使用xib和storyboard,总是有那么一些局限性.使用代码布局在某些时候就成了必须了?  . iOS原生的布局方式太过麻烦.要么使用VFL(Visu ...

  6. iOS自动布局(AutoLayout)之 NSLayoutAnchor

    自动布局(AutoLayout)之 NSLayoutAnchor 方式使用 AutoLayout 自动布局(AutoLayout)是iOS6引入的关系布局,实现动态位置和多视图关系的布局方式,是对fr ...

  7. New StoryBoard in iOS9

    Storyboards在iOS5就已经添加进来了,被开发者们指点了很多年了,如今他也添加了不少的新的功能.Apple现在是鼓励开发者们使用Storyboards来进行页面的开发的,虽然一直还没有完全那 ...

  8. iOS9 iOS10 iOS11的新特性

    iOS9 特性 关键字参考 2015 Objective-C 新特性 1.关键字 : 这些是纯编译器的语法支持(llvm 7.0),没有借助任何 objc runtime 的升级,也就是说,这个新语法 ...

  9. WWDC 2017:高级开发应该掌握的自动布局技巧

    构建 app 时使用的自动布局技术,其实就是建立视图与视图之间关系.而约束是建立视图间关系的纽带,帮助我们的 app 可以适应各种尺寸的屏幕,在应对花样百出的布局需求时游刃有余. 本文已收录至 iOS ...

  10. 如何利用Reveal神器查看各大APP UI搭建层级

    作者 乔同X 2016.08.22 19:45 写了3195字,被42人关注,获得了73个喜欢 如何利用Reveal神器查看各大APP UI搭建层级 字数413 阅读110 评论0 喜欢5 title ...

最新文章

  1. $.ajax居然触发popstate事件?
  2. 20W奖金+实习机会:阿里巴巴达摩院最新时间序列赛事来了!
  3. Ardino基础教程 17_四位数码管
  4. VS.NET 2005 Beta2的稳定性太差了:(
  5. 处理时间_6_SQL Server常见的时间格式转换
  6. 毕业多年,我们转变了多少?
  7. 【白皮书分享】腾讯2022新职业教育洞察白皮书:“职”成机遇,“育”见未来.pdf...
  8. 第五章 卷积神经网络(CNN)
  9. CSS3渐变(Gradients)-线性渐变
  10. WPF 添加阴影效果
  11. win10 安装gym[all]与mujoco的踩坑日志
  12. 计算机重装系统桌面文件如何恢复,电脑重装系统后怎么恢复原来的文件方法
  13. 【Scrum模式语言5】Scrum of Scrums
  14. 解救IP被封的服务器
  15. echarts图表y轴数据设置为固定值,等间距,如何自定义echarts图表y轴数据
  16. 在利用PS进行绘画时,线条画不直怎么办?
  17. 怎么找回xmind意外关机的文件_Xmind 导图保存丢失怎么找回?
  18. Qt创建停靠悬浮窗口
  19. 2022年起重机司机(限门式起重机)考试题库及在线模拟考试
  20. 计算机d盘中隐藏文件怎么恢复,电脑D盘的文件误删除了怎么恢复?怎么找回

热门文章

  1. 8数据提供什么掩膜产品_喜茶、茶百道、书亦、古茗8月外卖热销产品数据全解析...
  2. red hat linux yum,Red Hat Linux安装CentOS的yum源
  3. xticks函数--Matplotlib
  4. C#中 JSON 序列化 与 反序列化
  5. Linux 下mysql修改数据库存放目录方法和可能遇到的问题
  6. [转]Redis几个认识误区
  7. Quartus II 的MegaWizard字体过小
  8. 腾讯云和阿里云mysql性能对比_阿里云腾讯云服务器官方性能及实际体验对比
  9. html php交互json 结果集,基于HTML模板和JSON数据的JavaScript交互(移动端)
  10. Java-斗地主小游戏洗牌发牌(控制台程序)