美文网首页iOS学习
iOS9.0新特新之UIStackView 的学习

iOS9.0新特新之UIStackView 的学习

作者: 图长伴 | 来源:发表于2016-11-29 16:19 被阅读0次

升级iOS9.0后,增加了一些新特性.让们来一点点的了解一下吧.今天我们先学习一下UIstackView,因为它是新特性里给我们在布局方面带来很大便利的控件.以前我们要想布局三个视图(图1)我们会给他们三个视图设置相互的约束关系,如果其中的一个约束发生变化其他也会发生变化 ,这样我们又要重新改一下约束.

图1

但是在UIStackView我们实现这个效果就很简单了.使用UIStackView方式不外乎代码和xib.我们先以xib为例写一下,这样比较直观.

一.xib 实现

1.xib拖拽UIStackView

图2

然后再设置关于UIStackView的几个重要的属性:

UIStackView属性

axis: 设置UIStackView布局的方向:水平方向或垂直方向。

alignment:主要设置非轴方向子视图的对齐方式。

distribution:设置轴方向上子视图的分布比例.如果axis是水平方向,也即设置子视图的宽度,如果axis是垂直方向,则是设置子视图的高度。

spacing:控制子视图之间的间隔大小.

详细的属性介绍请看:iOS中UIStackView相关属性理解 .

二. 代码的方式实现

1.UIStackView 的实例

UIStackView *stackView = [[UIStackView alloc] initWithFrame:CGRectMake(0, 80, 300, 300)];

//设置水平方向

stackView.axis = UILayoutConstraintAxisVertical;

stackView.spacing = 10.0;

stackView.alignment = UIStackViewAlignmentFill;

stackView.distribution = UIStackViewDistributionFillEqually;

[self.view addSubview:stackView];

UILabel *topView = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];

topView.backgroundColor = [UIColor cyanColor];

UILabel *middleView = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 80, 70)];

middleView.backgroundColor = [UIColor orangeColor];

UILabel *bottomView = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];

bottomView.backgroundColor = [UIColor yellowColor];

[stackView addArrangedSubview:topView];

[stackView addArrangedSubview:middleView];

[stackView addArrangedSubview:bottomView];

出来的效果是这样的:

运行效果

具体的其他属性的组合和样式大家参考iOS中UIStackView相关属性理解自己设置一下,顺便练习一下.

三.总结

1.从上面的的代码中大家可能注意到了为什么所有的view起始点都是(0,0)但是却没有覆盖在一起呢?

是因为我们在往UIStackView中添加的视图的时候调用的是:

[stackView addArrangedSubview:topView];

而不是

[self.view addSubview:stackView];

此处千万不要惯性思维用addSubview:这个方法.否则的效果就是这样的:

用addSubview:后的效果

这个时候我们就范老毛病了(哎,我加的没错啊,代码是一样一样的啊,咋回事啊!)你好好看看是一样一样的吗.(坏笑)

2.UIStackView的使用很灵活,千万不要有一个UIStackView就可以解决所有布局的思想误区.其实UIStackView的子View也同样可以是UIStackView.只有多个UIStackView组合才能实现比较复杂的界面效果.就看你是怎么构思的了.在写界面前一定要构思好再动手去做.磨刀不误砍柴工嘛.

3.有些人觉得让我空想构思也不太熟练啊,好吧,我有高招甩你个链接多练习练习就好了.我也是在学习中.UIStackView Tutorial: Introducing Stack Views

好了大概就写到这里了.有哪里做的不好的地方请大家都提出来,我会认真改正的.多谢!

相关文章

  • iOS9.0新特新之UIStackView 的学习

    升级iOS9.0后,增加了一些新特性.让们来一点点的了解一下吧.今天我们先学习一下UIstackView,因为它是...

  • iOS9 新特新介绍

    一. UIStackView 新控件:UIStackView 栈视图, 类似AppleWatch的Group 父类...

  • UIStackView+Separator 增加分割线

    IOS9.0以后新增控件UIStackView.项目中经常要用到分割线。下面方法能很方便给UIStackView中...

  • iOS - UIStackView的使用

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

  • UIStackView详解

    1. 概念 苹果在iOS9中UIKit框架引入一个新的视图类UIStackView:UIStackView视图 管...

  • iOS9 UIStackView 使用

    iOS 9中增加了新的控件:UIStackView,看下图就明白作用了。 UIStackView 类提供了一个高效...

  • UIStackView介绍

    ios9之后增加了新的布局神器UIStackView,首先我们先介绍一下UIStackView的常用属性,然后我们...

  • iOS使用 stack view 布局

    iOS 9 增加了一个类 UIStackView ,UIStackView 提供了一种新的管理子视图布局的方式,U...

  • iOS9.0新特性

    iOS9比之前又多了几个关键字 泛型 泛型 : 限制对象类型使用场景:1、集合类对象2、当申明一个类,类里面的某些...

  • iOS9新特性之UIStackView

    iOS9在布局方面的引入新控件UIStackView,即一个容器里可以包含多个控件,分为水平和竖直排列.我们只需约...

网友评论

    本文标题:iOS9.0新特新之UIStackView 的学习

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