博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CoreData(数据持久化的方式)
阅读量:5340 次
发布时间:2019-06-15

本文共 21137 字,大约阅读时间需要 70 分钟。

//

//  ViewController.m

//  UI-AutoLayout.

//

//  Created by Bruce on 15/9/7.

//  Copyright (c) 2015年 Bruce. All rights reserved.

//

 

#import "ViewController.h"

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    [self demo5];

}

 

//一个视图

- (void)demo1

{

    UIView *view = [[UIView alloc]init];

//    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

//    VFL  横向 竖向布局

//    @"H:" 设置横向布局

//    @"V:" 设置竖向布局

    

//    设置横向布局 距离参照视图的左侧边距

//    @"H:|-20-"

//    @"H:[view]-20-"

    

//    @"H:|-20-[view(200)]" view的宽  永远是200

//    @"H:|-20-[view(otherView)]" view的宽  与otherView的宽相同

//    @"H:|-20-[view(>=200)]" 设置横向布局 距离参照视图的左侧边距 设置view横向的尺寸 不能低于200

    

//    @"H:|-20-[view(>=200)]-20-|" 设置横向布局 距离参照视图的左侧边距 设置view横向的尺寸 不能低于200 设置右侧与参照视图之间的间距

    

//    视图 使用属性的时候   绑定key  需要绑定它真实的名字  _titleLable

//    self.titleLable = _titleLable

 

    

//    @"H:|-20-" 设置横向布局 距离父视图的左侧边距

//    @"H:|-20-[view(>=200)]" 设置横向布局 距离父视图的左侧边距 设置view横向的尺寸 不能低于200

//    @"H:|-20-[view(>=200)]-20-|" 设置横向布局 距离父视图的左侧边距 设置view横向的尺寸 不能低于200 设置右侧与父视图之间的间距

    

//    竖向布局@"V:|-40-[view(>=200)]-20-|"

    

//    使用VFL  需把视图的对象(视图) 与 他的名字(字符串) 绑定起来

    NSDictionary *views = NSDictionaryOfVariableBindings(view);

    

//    给 self.view 和 view 添加约束

//    addConstraints 添加约束

//    NSLayoutConstraint 添加 具体约束的一个类

//    + (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views

//    format:VFL

//    opts:同意按照某个方向去布局

//    metrics:绑定的参数

//    views:绑定视图的参数

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

    

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

}

 

//两个视图的布局

- (void)demo2

{

    UIView *view = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

    UIView *view1 = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view1.translatesAutoresizingMaskIntoConstraints = NO;

    view1.backgroundColor = [UIColor yellowColor];

    [self.view addSubview:view1];

    

    

    NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);

    

//    红色view的约束

//    @"H:|-20-[view(>=200)]-20-|"

//    @"V:|-40-[view(50)]-10-[view1]"

    

//    黄色view1约束

//    @"H:|-20-[view1(>=200)]-20-|"

//    @"V:[view]-10-[view1(50)]"

    

//    红色view横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

//    红色view竖向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1]" options:0 metrics:nil views:views]];

    

//    黄色view1横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];

//    黄色view1竖向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];

}

 

 

//两个视图的布局 优化demo2

- (void)demo3

{

    UIView *view = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

    UIView *view1 = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view1.translatesAutoresizingMaskIntoConstraints = NO;

    view1.backgroundColor = [UIColor yellowColor];

    [self.view addSubview:view1];

    

    

    NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);

    

    //    红色view的约束

    //    @"H:|-20-[view(>=200)]-20-|"

    //    @"V:|-40-[view(50)]-10-[view1]"

    

    //    黄色view1约束

    //    @"H:|-20-[view1(>=200)]-20-|"

    //    @"V:[view]-10-[view1(50)]"

    

    //    红色view横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

    

//    红色view 黄色view1 都在同一个父视图 而且两个视图之间 又有关系

    //    红色view 黄色view1 竖向的约束

//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(50)]" options:0 metrics:nil views:views]];

    

//    红色view 黄色view1 两个视图的高度 都是50

//    [view1(view)]

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(view)]" options:0 metrics:nil views:views]];

    

    //    黄色view1横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];

    //    黄色view1竖向的约束

//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];

}

 

//再次优化 demo2

- (void)demo4

{

    NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor]];

    

    for (int i=0; i<2; i++) {

        

        UIView *view = [[UIView alloc]init];

        view.backgroundColor = colorList[i];

        view.translatesAutoresizingMaskIntoConstraints = NO;

        view.tag = 10+i;

        [self.view addSubview:view];

        

    }

    

    UIView *redView = [self.view viewWithTag:10];

    UIView *yellowView = [self.view viewWithTag:11];

    

    NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView);

    

//    两个视图 横向的约束

    NSArray *constraints = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=200)]-20-|"];

    

    for (NSString *VFL in constraints) {

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VFL options:0 metrics:nil views:views]];

    }

    

//    两个视图的竖向约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[redView(50)]-10-[yellowView(redView)]" options:0 metrics:nil views:views]];

}

 

//三个视图

- (void)demo5

{

    NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor],[UIColor blueColor]];

    

    for (int i=0; i<3; i++) {

        

        UIView *view = [[UIView alloc]init];

        view.translatesAutoresizingMaskIntoConstraints = NO;

        view.backgroundColor = colorList[i];

        view.tag = 10+i;

        [self.view addSubview:view];

        

    }

    

    UIView *redView = [self.view viewWithTag:10];

    UIView *yellowView = [self.view viewWithTag:11];

    UIView *blueView = [self.view viewWithTag:12];

    

    NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView,blueView);

    

//    @"H:|-20-[redView>=200]-20-|"

//    @"H:|-20-[yellowView>=100]-10-[blueView(yellowView)]-20-|"

    

    NSArray *HList = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=100)]-10-[blueView(yellowView)]-20-|"];

    

//    红色视图与黄色视图竖向的关系,红色视图与蓝色视图竖向的关系

    NSArray *VList = @[@"V:|-40-[redView(50)]-10-[yellowView(redView)]",@"V:[redView]-10-[blueView(redView)]"];

    

    for (int i=0; i<VList.count; i++) {

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:HList[i] options:0 metrics:nil views:views]];

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VList[i] options:0 metrics:nil views:views]];

        

    }

    

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

@end

 

-------------------------------------

//

//  ViewController.m

//  UI-AutoLayout.

//

//  Created by Bruce on 15/9/7.

//  Copyright (c) 2015年 Bruce. All rights reserved.

//

 

#import "ViewController.h"

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    [self demo5];

}

 

//一个视图

- (void)demo1

{

    UIView *view = [[UIView alloc]init];

//    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

//    VFL  横向 竖向布局

//    @"H:" 设置横向布局

//    @"V:" 设置竖向布局

    

//    设置横向布局 距离参照视图的左侧边距

//    @"H:|-20-"

//    @"H:[view]-20-"

    

//    @"H:|-20-[view(200)]" view的宽  永远是200

//    @"H:|-20-[view(otherView)]" view的宽  与otherView的宽相同

//    @"H:|-20-[view(>=200)]" 设置横向布局 距离参照视图的左侧边距 设置view横向的尺寸 不能低于200

    

//    @"H:|-20-[view(>=200)]-20-|" 设置横向布局 距离参照视图的左侧边距 设置view横向的尺寸 不能低于200 设置右侧与参照视图之间的间距

    

//    视图 使用属性的时候   绑定key  需要绑定它真实的名字  _titleLable

//    self.titleLable = _titleLable

 

    

//    @"H:|-20-" 设置横向布局 距离父视图的左侧边距

//    @"H:|-20-[view(>=200)]" 设置横向布局 距离父视图的左侧边距 设置view横向的尺寸 不能低于200

//    @"H:|-20-[view(>=200)]-20-|" 设置横向布局 距离父视图的左侧边距 设置view横向的尺寸 不能低于200 设置右侧与父视图之间的间距

    

//    竖向布局@"V:|-40-[view(>=200)]-20-|"

    

//    使用VFL  需把视图的对象(视图) 与 他的名字(字符串) 绑定起来

    NSDictionary *views = NSDictionaryOfVariableBindings(view);

    

//    给 self.view 和 view 添加约束

//    addConstraints 添加约束

//    NSLayoutConstraint 添加 具体约束的一个类

//    + (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views

//    format:VFL

//    opts:同意按照某个方向去布局

//    metrics:绑定的参数

//    views:绑定视图的参数

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

    

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

}

 

//两个视图的布局

- (void)demo2

{

    UIView *view = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

    UIView *view1 = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view1.translatesAutoresizingMaskIntoConstraints = NO;

    view1.backgroundColor = [UIColor yellowColor];

    [self.view addSubview:view1];

    

    

    NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);

    

//    红色view的约束

//    @"H:|-20-[view(>=200)]-20-|"

//    @"V:|-40-[view(50)]-10-[view1]"

    

//    黄色view1约束

//    @"H:|-20-[view1(>=200)]-20-|"

//    @"V:[view]-10-[view1(50)]"

    

//    红色view横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

//    红色view竖向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1]" options:0 metrics:nil views:views]];

    

//    黄色view1横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];

//    黄色view1竖向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];

}

 

 

//两个视图的布局 优化demo2

- (void)demo3

{

    UIView *view = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

    UIView *view1 = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view1.translatesAutoresizingMaskIntoConstraints = NO;

    view1.backgroundColor = [UIColor yellowColor];

    [self.view addSubview:view1];

    

    

    NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);

    

    //    红色view的约束

    //    @"H:|-20-[view(>=200)]-20-|"

    //    @"V:|-40-[view(50)]-10-[view1]"

    

    //    黄色view1约束

    //    @"H:|-20-[view1(>=200)]-20-|"

    //    @"V:[view]-10-[view1(50)]"

    

    //    红色view横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

    

//    红色view 黄色view1 都在同一个父视图 而且两个视图之间 又有关系

    //    红色view 黄色view1 竖向的约束

//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(50)]" options:0 metrics:nil views:views]];

    

//    红色view 黄色view1 两个视图的高度 都是50

//    [view1(view)]

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(view)]" options:0 metrics:nil views:views]];

    

    //    黄色view1横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];

    //    黄色view1竖向的约束

//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];

}

 

//再次优化 demo2

- (void)demo4

{

    NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor]];

    

    for (int i=0; i<2; i++) {

        

        UIView *view = [[UIView alloc]init];

        view.backgroundColor = colorList[i];

        view.translatesAutoresizingMaskIntoConstraints = NO;

        view.tag = 10+i;

        [self.view addSubview:view];

        

    }

    

    UIView *redView = [self.view viewWithTag:10];

    UIView *yellowView = [self.view viewWithTag:11];

    

    NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView);

    

//    两个视图 横向的约束

    NSArray *constraints = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=200)]-20-|"];

    

    for (NSString *VFL in constraints) {

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VFL options:0 metrics:nil views:views]];

    }

    

//    两个视图的竖向约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[redView(50)]-10-[yellowView(redView)]" options:0 metrics:nil views:views]];

}

 

//三个视图

- (void)demo5

{

    NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor],[UIColor blueColor]];

    

    for (int i=0; i<3; i++) {

        

        UIView *view = [[UIView alloc]init];

        view.translatesAutoresizingMaskIntoConstraints = NO;

        view.backgroundColor = colorList[i];

        view.tag = 10+i;

        [self.view addSubview:view];

        

    }

    

    UIView *redView = [self.view viewWithTag:10];

    UIView *yellowView = [self.view viewWithTag:11];

    UIView *blueView = [self.view viewWithTag:12];

    

    NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView,blueView);

    

//    @"H:|-20-[redView>=200]-20-|"

//    @"H:|-20-[yellowView>=100]-10-[blueView(yellowView)]-20-|"

    

    NSArray *HList = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=100)]-10-[blueView(yellowView)]-20-|"];

    

//    红色视图与黄色视图竖向的关系,红色视图与蓝色视图竖向的关系

    NSArray *VList = @[@"V:|-40-[redView(50)]-10-[yellowView(redView)]",@"V:[redView]-10-[blueView(redView)]"];

    

    for (int i=0; i<VList.count; i++) {

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:HList[i] options:0 metrics:nil views:views]];

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VList[i] options:0 metrics:nil views:views]];

        

    }

    

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

@end

 

------------------------

//

//  ViewController.m

//  UI-AutoLayout.

//

//  Created by Bruce on 15/9/7.

//  Copyright (c) 2015年 Bruce. All rights reserved.

//

 

#import "ViewController.h"

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    [self demo5];

}

 

//一个视图

- (void)demo1

{

    UIView *view = [[UIView alloc]init];

//    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

//    VFL  横向 竖向布局

//    @"H:" 设置横向布局

//    @"V:" 设置竖向布局

    

//    设置横向布局 距离参照视图的左侧边距

//    @"H:|-20-"

//    @"H:[view]-20-"

    

//    @"H:|-20-[view(200)]" view的宽  永远是200

//    @"H:|-20-[view(otherView)]" view的宽  与otherView的宽相同

//    @"H:|-20-[view(>=200)]" 设置横向布局 距离参照视图的左侧边距 设置view横向的尺寸 不能低于200

    

//    @"H:|-20-[view(>=200)]-20-|" 设置横向布局 距离参照视图的左侧边距 设置view横向的尺寸 不能低于200 设置右侧与参照视图之间的间距

    

//    视图 使用属性的时候   绑定key  需要绑定它真实的名字  _titleLable

//    self.titleLable = _titleLable

 

    

//    @"H:|-20-" 设置横向布局 距离父视图的左侧边距

//    @"H:|-20-[view(>=200)]" 设置横向布局 距离父视图的左侧边距 设置view横向的尺寸 不能低于200

//    @"H:|-20-[view(>=200)]-20-|" 设置横向布局 距离父视图的左侧边距 设置view横向的尺寸 不能低于200 设置右侧与父视图之间的间距

    

//    竖向布局@"V:|-40-[view(>=200)]-20-|"

    

//    使用VFL  需把视图的对象(视图) 与 他的名字(字符串) 绑定起来

    NSDictionary *views = NSDictionaryOfVariableBindings(view);

    

//    给 self.view 和 view 添加约束

//    addConstraints 添加约束

//    NSLayoutConstraint 添加 具体约束的一个类

//    + (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views

//    format:VFL

//    opts:同意按照某个方向去布局

//    metrics:绑定的参数

//    views:绑定视图的参数

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

    

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

}

 

//两个视图的布局

- (void)demo2

{

    UIView *view = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

    UIView *view1 = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view1.translatesAutoresizingMaskIntoConstraints = NO;

    view1.backgroundColor = [UIColor yellowColor];

    [self.view addSubview:view1];

    

    

    NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);

    

//    红色view的约束

//    @"H:|-20-[view(>=200)]-20-|"

//    @"V:|-40-[view(50)]-10-[view1]"

    

//    黄色view1约束

//    @"H:|-20-[view1(>=200)]-20-|"

//    @"V:[view]-10-[view1(50)]"

    

//    红色view横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

//    红色view竖向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1]" options:0 metrics:nil views:views]];

    

//    黄色view1横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];

//    黄色view1竖向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];

}

 

 

//两个视图的布局 优化demo2

- (void)demo3

{

    UIView *view = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view.translatesAutoresizingMaskIntoConstraints = NO;

    view.backgroundColor = [UIColor redColor];

    [self.view addSubview:view];

    

    UIView *view1 = [[UIView alloc]init];

    //    如果需要使用autoLayout   translatesAutoresizingMaskIntoConstraints 必须禁用

    view1.translatesAutoresizingMaskIntoConstraints = NO;

    view1.backgroundColor = [UIColor yellowColor];

    [self.view addSubview:view1];

    

    

    NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);

    

    //    红色view的约束

    //    @"H:|-20-[view(>=200)]-20-|"

    //    @"V:|-40-[view(50)]-10-[view1]"

    

    //    黄色view1约束

    //    @"H:|-20-[view1(>=200)]-20-|"

    //    @"V:[view]-10-[view1(50)]"

    

    //    红色view横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];

    

//    红色view 黄色view1 都在同一个父视图 而且两个视图之间 又有关系

    //    红色view 黄色view1 竖向的约束

//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(50)]" options:0 metrics:nil views:views]];

    

//    红色view 黄色view1 两个视图的高度 都是50

//    [view1(view)]

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(view)]" options:0 metrics:nil views:views]];

    

    //    黄色view1横向的约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];

    //    黄色view1竖向的约束

//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];

}

 

//再次优化 demo2

- (void)demo4

{

    NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor]];

    

    for (int i=0; i<2; i++) {

        

        UIView *view = [[UIView alloc]init];

        view.backgroundColor = colorList[i];

        view.translatesAutoresizingMaskIntoConstraints = NO;

        view.tag = 10+i;

        [self.view addSubview:view];

        

    }

    

    UIView *redView = [self.view viewWithTag:10];

    UIView *yellowView = [self.view viewWithTag:11];

    

    NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView);

    

//    两个视图 横向的约束

    NSArray *constraints = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=200)]-20-|"];

    

    for (NSString *VFL in constraints) {

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VFL options:0 metrics:nil views:views]];

    }

    

//    两个视图的竖向约束

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[redView(50)]-10-[yellowView(redView)]" options:0 metrics:nil views:views]];

}

 

//三个视图

- (void)demo5

{

    NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor],[UIColor blueColor]];

    

    for (int i=0; i<3; i++) {

        

        UIView *view = [[UIView alloc]init];

        view.translatesAutoresizingMaskIntoConstraints = NO;

        view.backgroundColor = colorList[i];

        view.tag = 10+i;

        [self.view addSubview:view];

        

    }

    

    UIView *redView = [self.view viewWithTag:10];

    UIView *yellowView = [self.view viewWithTag:11];

    UIView *blueView = [self.view viewWithTag:12];

    

    NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView,blueView);

    

//    @"H:|-20-[redView>=200]-20-|"

//    @"H:|-20-[yellowView>=100]-10-[blueView(yellowView)]-20-|"

    

    NSArray *HList = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=100)]-10-[blueView(yellowView)]-20-|"];

    

//    红色视图与黄色视图竖向的关系,红色视图与蓝色视图竖向的关系

    NSArray *VList = @[@"V:|-40-[redView(50)]-10-[yellowView(redView)]",@"V:[redView]-10-[blueView(redView)]"];

    

    for (int i=0; i<VList.count; i++) {

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:HList[i] options:0 metrics:nil views:views]];

        

        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VList[i] options:0 metrics:nil views:views]];

        

    }

    

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

@end

 

 

AWCollectionViewDialLayout

封装好的类

 

转载于:https://www.cnblogs.com/wukun16/p/4883930.html

你可能感兴趣的文章
时间戳与日期的相互转换
查看>>
jmeter(五)创建web测试计划
查看>>
python基本数据类型
查看>>
1305: [CQOI2009]dance跳舞 - BZOJ
查看>>
关于TDD的思考
查看>>
Cocos2d-x学习之windows 7 android环境搭建
查看>>
将html代码中的大写标签转换成小写标签
查看>>
jmeter多线程组间的参数传递
查看>>
零散笔记
查看>>
学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST
查看>>
MaiN
查看>>
[Python学习] 简单网络爬虫抓取博客文章及思想介绍
查看>>
触发器课程SQL Server 知识梳理九 触发器的使用
查看>>
信息浏览器从Android的浏览器中传递cookie数据到App中信息浏览器
查看>>
客户端连接linux虚拟机集群报错
查看>>
linux下部署一个JavaEE项目的简单步骤
查看>>
hash储存机制
查看>>
[Android学习系列16]Android把php输出的json加载到listview
查看>>
20145205 《信息安全系统设计基础》第14周学习总结
查看>>
XML中CDATA和#PCDATA的区别
查看>>