autoLayout

 frame  原点  自身的尺寸 来确定 自身位置
 
 autoLayout  根据参照视图的位置  来定义自己的位置
 
 
 autoLayout相对布局  约束视图和视图之间的关系 来分配 屏幕上的位置
 
 //     使用VFL(Visual Format Language  视觉格式语言)通过添加字符串 来约束视图和视图之间的关系
 
 使用autoLayout 必须把translatesAutoresizingMaskIntoConstraints禁用才可以使用
 相对布局是找一个参照物 拿参照物当做基础,设置他和参照物的相对距离 来设置自己的位置
 
 VFL 需有 横向(H:) 竖向(V:) 两个方向的约束
 -50- 两个视图之间的距离
 H:横向
 | 表示他的父视图
 -50- 表示后面视图 与前面视图的距离 (后面视图是textField,前面视图是他的父视图)
 [textField(>=200)] 要约束视图的宽  (>=200)允许最小的宽度是200  如果是竖向  就是允许最小的高度
 
 @"H:|-50-[textField(>=200)]-50-|"
 
 距离坐边原点距离50   右边边界距离50    允许视图的最小宽度是200
 
 
 V: 竖向
 
 使用autolayout适配的时候  以最小尺寸设备 为基准
 
 //    视图 使用属性的时候   绑定key  需要绑定它真实的名字  _titleLable
 //    self.titleLable = _titleLable
 
 */

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor grayColor];
    [self demo5];
    

}

//一个视图
- (void)demo1{
    UIView *view = [[UIView alloc]init];
//   如果使用autolayout。 translatesAutoresizingMaskIntoConstraints这个属性必须禁用
    view.translatesAutoresizingMaskIntoConstraints = NO;
    view.backgroundColor = [UIColor redColor];
    [self.view addSubview:view];
    
//    VFL 横向 竖向布局
//    @"H:"设置横向布局
//    @"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 横向的约束
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1]" options:0 metrics:nil views:views]];

    
//    添加黄色视图约束
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];
    [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];
    
//    UIView *view3 = [[UIView alloc]init];
//    //   如果使用autolayout。 translatesAutoresizingMaskIntoConstraints这个属性必须禁用
//    view3.translatesAutoresizingMaskIntoConstraints = NO;
//    view3.backgroundColor = [UIColor yellowColor];
//    [self.view addSubview:view3];

    NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);
    //    添加红色VIew 横向的约束
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(50)]" options:0 metrics:nil views:views]];
    
    
    //    添加黄色视图约束
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];
    
//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view3(>=200)]-20-|" options:0 metrics:nil views:views]];

//    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-10-[view1(50)]" options:0 metrics:nil views:views]];
//    view和view1的高度都是50 让View 的高度就是View的
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(50)]-10-[view1(view)]" options:0 metrics:nil views:views]];
    
}

- (void)demo4{
    NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor],[UIColor purpleColor]];
    for (int i = 0; i < 3; i ++) {
        UIView *view = [[UIView alloc]init];
        view.backgroundColor = colorList[i];
        view.tag = 100+i;
        view.translatesAutoresizingMaskIntoConstraints = NO;
        [self.view addSubview:view];
    }
    
    UIView *redView = (UIView *)[self.view viewWithTag:100];
    UIView *yellowView = (UIView *)[self.view viewWithTag:101];
    UIView *purpleView = (UIView *)[self.view viewWithTag:102];
    
    NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView,purpleView);
//    两个视图横向的约束
    NSArray *constraints = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=200)]-20-|",@"H:|-20-[purpleView(>=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)]-10-[purpleView(redView)]" options:0 metrics:nil views:views]];
}

- (void)demo5{
    NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor],[UIColor purpleColor]];
    for (int i = 0; i < 3; i ++) {
        UIView *view = [[UIView alloc]init];
        view.backgroundColor = colorList[i];
        view.tag = 100+i;
/*注意*/view.translatesAutoresizingMaskIntoConstraints = NO;
        [self.view addSubview:view];
    }
    
    UIView *redView = (UIView *)[self.view viewWithTag:100];
    UIView *yellowView = (UIView *)[self.view viewWithTag:101];
    UIView *purpleView = (UIView *)[self.view viewWithTag:102];
    
    NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView,purpleView);
    //    两个视图横向的约束
//    红色视图与黄色视图之间的关系,红色和purple视图之间的关系
    NSArray *HList = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=100)]-10-[purpleView(yellowView)]-20-|"];
    
    NSArray *VList = @[@"V:|-40-[redView(50)]-10-[yellowView(redView)]",@"V:|-40-[redView(50)]-10-[purpleView(redView)]"];
    
    for (int i = 0; i < HList.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]];
    }
    

   }

 

转载于:https://www.cnblogs.com/liYongJun0526/p/4874129.html

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值