ios9控件新宠:UIStackView
来源:互联网 发布:批量处理图片软件 编辑:程序博客网 时间:2024/04/28 11:54
简介:UIStackView 类提供了一个高效的接口用于平铺一行或一列的视图组合。Stack视图使你依靠自动布局的能力,创建用户接口使得可以动态的调整设备朝向、屏幕尺寸及任何可用范围内的变化
布局内容
打开Main.Storyboard,选择其中一个Stack View可以查看其选项,并选中一个Stack View。在 Attributes Inspector中,注意Stack View下面列出的选择。
Axis表示Stack View的subview是水平排布还是垂直排布。Alignment控制subview对齐方式。Distribution定义subview的分布方式。Spacing 为subview间的最小间距。
把术语简化一下,你可这样理解:Alignment 用于控制X 和 Y值,而Distribution 用于控制高度和宽度。另两个值都会影响对齐。如果选中Baseline Relative将根据subview的基线调整垂直间距。如果选中Layout Margins Relative 将相对于标准边界空白来调整subview位置。
另一个需要记住的是,Stack View会被当成Container View。所以它是一个不会被渲染的UIView子类。它不像其他UIView子类一样,会被渲染到屏幕上。这也意味着设置其backgroundColor属性或重载drawRect:方法都不会产生任何效果。
UIStackView 是 UIView 的非渲染型子类。它没有提供其自有的任何用户接口。相反的,它只管理被其管理的视图的位置和尺寸。因此,有些属性(如 backgroundColor)在 stack 视图上是无效的。类似的,你无法重写 layerClass,drawRect: 或 drawLayer:inContext: 方法。
这里有一系列的属性来定义 stack 视图如何平铺其内容。
axis(轴向) 属性决定了 stack 的朝向,只有垂直或水平;
distribution(分布) 属性决定了其管理的视图在沿着其轴向上的布局;
alignment(对齐) 属性决定了其管理的视图在垂直于其轴向上的布局;
spacing(空隙) 属性决定了其管理的视图间的最小间隙;
baselineRelativeArrangement 属性决定了其视图间的垂直间隙是否根据基线测量得到;
layoutMarginsRelativeArrangement 属性决定了 stack 视图平铺其管理的视图时是否要参照它的布局边距
subView和arrangedSubView
开始使用Stack View前,我们先看一下它的属性subViews和arrangedSubvies属性的不同。如果你想添加一个subview给Stack View管理,你应该调用addArrangedSubview:或insertArrangedSubview:atIndex: arrangedSubviews数组是subviews属性的子集。
要移除Stack View管理的subview,需要调用removeArrangedSubview:和removeFromSuperview。移除arrangedSubview只是确保Stack View不再管理其约束,而非从视图层次结构中删除,理解这一点非常重要。
常用的方法
创建 Stack 视图
- initWithArrangedSubviews: (New in iOS 9.0)
管理安排的子视图
- addArrangedSubview: (New in iOS 9.0)
arrangedSubviews Property (New in iOS 9.0)
- insertArrangedSubview:atIndex: (New in iOS 9.0)
- removeArrangedSubview: (New in iOS 9.0)
设置布局
alignment Property (New in iOS 9.0)
axis Property (New in iOS 9.0)
baselineRelativeArrangement Property (New in iOS 9.0)
distribution Property (New in iOS 9.0)
layoutMarginsRelativeArrangement Property (New in iOS 9.0)
spacing Property (New in iOS 9.0)
常量
UIStackViewDistribution
UIStackViewAlignment
参考文章:
http://mobile.51cto.com/iphone-482515.htm
http://www.cocoachina.com/ios/20150623/12233.html
- ios9控件新宠:UIStackView
- IOS9新增UIStackView
- ios9学习系列:UIStackView
- ios9新特性UIStackView
- iOS9: UIStackView入门
- IOS9 UIStackView简介
- iOS9 UIStackView 简介
- IOS9 UIStackView(转)
- iOS9之UIStackView
- ios9中 UIStackView的使用
- iOS9中UIStackView的使用
- iOS9 中UIStackView的使用
- iOS9.0布局神器UIStackView
- iOS9 新增 UIStackView 官方文档翻译
- Tieria iOS9 新增 UIStackView 官方文档翻译
- iOS9新特性-UIStackView(简单介绍)
- iOS9 新增 UIStackView 官方文档翻译
- iOS9 新增 UIStackView 官方文档翻译
- VS2008中的多个CMFCToolBar,在同一行显示!
- 【Android即时通讯】Android 高仿微信的即时聊天DEMO
- Android代码混淆、第三方平台加固加密、渠道分发 完整教程
- 2015.11.27-------KNN算法的python实现的应用
- Linux内核驱动之DDR3(一)寻址
- ios9控件新宠:UIStackView
- Swift 闭包
- Android 万年历日期选择器
- Android 键盘使用二(监听输入法搜索时防止两次加载)
- OOD, OOA和OOP
- Android访问网络,使用HttpURLConnection还是HttpClient?
- 二分 hihoCoder1249 Xiongnu's Land
- CodeForces 602B Approximating a Constant Range(方法很多,不想费脑子就上线段树)——Codeforces Beta Round #333 (Div. 2)
- 《剑指Offer》读书笔记04:重建二叉树