AutoLayout

纯代码创建约束如下:

- (void)viewDidLoad {
    [super viewDidLoad];

    //OC专门为开发者封装了一个类NSLayoutConstraint来帮助开发者描述布局
    /**
     *  view1.attr1 = view2.attr2 * multiplier + constant
     *  视图1.属性1 关系 视图2.属性2 * 缩放比例 + 偏移量

     *  item:约束中的两个视图对象
     *  attribute:描述视图对齐特征
     *  relatedBy:描述两个视图的attribute关系
     *  toItem:
     *  attribute:
     *  multiplier:缩放比例
     *  constant:偏移量
     */
//    [NSLayoutConstraint constraintWithItem:<#(nonnull id)#> attribute:<#(NSLayoutAttribute)#> relatedBy:<#(NSLayoutRelation)#> toItem:<#(nullable id)#> attribute:<#(NSLayoutAttribute)#> multiplier:<#(CGFloat)#> constant:<#(CGFloat)#>];


    //创建一个view1视图
    UIView *view1 = [UIView new];
    view1.backgroundColor = [UIColor redColor];
//    view1.frame = CGRectMake(100, 100, 100, 100);
    //启动自动布局
    //iOS6之后出现AutoLayout布局,用于取代原先的Autoresizing系统的布局方式
    view1.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview:view1];
    //与view左边对齐
    NSLayoutConstraint *constraint1 = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:100];

    [self.view addConstraint:constraint1];
    //与view顶部对齐
    NSLayoutConstraint *constraint2 = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:100];
    [self.view addConstraint:constraint2];
    //view1宽度
     NSLayoutConstraint *constraint3 = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeWidth multiplier:1 constant:100];
    [self.view addConstraint:constraint3];
    //view1高度
    NSLayoutConstraint *constraint4 = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1 constant:100];
    [self.view addConstraint:constraint4];

    //创建一个view2视图
    UIView *view2 = [UIView new];
    view2.backgroundColor = [UIColor greenColor];
    view2.translatesAutoresizingMaskIntoConstraints = NO;
    [self.view addSubview:view2];
    //左侧与view对齐
    NSLayoutConstraint *constraint5 = [NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:200];
    [self.view addConstraint:constraint5];
    //与view顶部对齐
    NSLayoutConstraint *constraint6 = [NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:200];
    [self.view addConstraint:constraint6];
    //view2宽度
    NSLayoutConstraint *constraint7 = [NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:view1 attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0];
    [self.view addConstraint:constraint7];
    //view2高度
    NSLayoutConstraint *constraint8 = [NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:view1 attribute:NSLayoutAttributeHeight multiplier:0.5 constant:0];
    [self.view addConstraint:constraint8];

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值