ios学习路线—UIKit框架(UIStackView)

UIStackView介绍
1.1. UIStackView 是iOS9中新增的一个视图,用来管理一行或一列视图的组合。

2.对于开发者来说堆栈视图(UIStackView)的引入值得一提。我知道对于一些开发者来说使用autolayout设计一些复杂的交互界面是比较困难的。UIStackView正好能帮助到并让我们的开发者的工作变得更容易些。UIStackView提供了一个高效的接口用于平铺一行或一列的视图组合。对于嵌入到StackView的视图,你不用再添加自动布局的约束了。Stack View管理这些子视图的布局,并帮你自动布局约束。也就是说,这些子视图能够适应不同的屏幕尺寸。此外,你可以嵌入一个stack View到另一个stack view中来创建更为复杂的用户界面。不要误解我的意思,这并不意味着你就不需要处理自动布局了。你仍旧要定义一些布局约束来约束stack view。它只是帮你节约了为每个UI元素创建约束的时间,同时它更容易的从布局中添加/删除一个视图。

UIStackView的属性介绍
1.Axis:这个属性是改变UIStackView中的排布方式的属性,其中有水平排布与垂直排布。

2.Alignment:这个属性是其中子视图的位置摆布方式默认是填充摆布。

3.Fill:子视图填充他所在的位置(默认)。

4.Leading:子视图头部对齐。

5.Center:子视图居中对齐。

6.Trailing:子视图尾部对齐。

7.Distribution:子视图的大小。

8.Fill:子视图填充整个UIStackView。

9.Fill Equally:子视图填充空白区域并等分。

  1. Fill Proportionally:按照目前相对位置进行填充。

11.Equal Spacing:等间距。

12.Spacing设置子视图之间的间距大小。

13.Baseline Relative:如果设置子视图间距的大小为基线到下一个视图的头部。

注意:点UIStackView其实是一个Container View他不能被渲染所以这个视图没有backgroundColor与drawRect方法

示例

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIView *view1 = [[UIView alloc] init];
    view1.backgroundColor = [UIColor redColor];
    UIView *view2 = [[UIView alloc] init];
    view2.backgroundColor = [UIColor orangeColor];


    UIStackView *stackView = [[UIStackView alloc] initWithArrangedSubviews:@[view1,view2]];
    stackView.frame = CGRectMake(0,
                                 64,
                                 [UIScreen mainScreen].bounds.size.width,
                                 [UIScreen mainScreen].bounds.size.height);
    stackView.axis = UILayoutConstraintAxisHorizontal;
    stackView.alignment = UIStackViewAlignmentFill;
    stackView.distribution = UIStackViewDistributionFillEqually;
    stackView.spacing = 20;
    [self.view addSubview:stackView];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

你可能感兴趣的:(iOS)