Objective-C语言——AutoLayout自动布局

来源:互联网 发布:linux查看文件夹权限 编辑:程序博客网 时间:2024/06/05 11:40


#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

  

    /*

        AutoLayout 由来

     iOS6之后出现的一种新的布局方式,用于取代原先的 Autoresizing系统的布局方式

     

     AutoLayer 是指定视图和父视图 视图和兄弟视图的关系来布局

     

     AutoLayer当中,我们使用约束来描述视图与视图之间的关系

     

     OC 专门为开发者封装了一个类 NSLayoutConstraint来帮助开发者描述布局

     */

    

//    [NSLayoutConstraint constraintWithItem:<#(nonnull id)#> attribute:<#(NSLayoutAttribute)#> relatedBy:<#(NSLayoutRelation)#> toItem:<#(nullable id)#> attribute:<#(NSLayoutAttribute)#> multiplier:<#(CGFloat)#> constant:<#(CGFloat)#>];

    /*

     参数的意义:

     Item:约束中两个视图对象

     attribute:描述视图的对齐特征

     relatedBy:描述两个视图 attribute关系

     multiplier:缩放比例

     constant:偏移量

     

     视图1Item.属性(attribute 关系(relatedBy视图2Item.属性(attribute*缩放比例(multiplier + 偏移量(constant

     

     

     视图1.左边 ==视图2.左边 * 1 + 0

     [NSLayoutConstraint constraintWithItem:视图1 attribute:左边 relatedBy:等于 toItem:视图2 [attribute:左边 multiplier:1 constant:0];

     

     

     视图1.宽度 == 100

     [NSLayoutConstraint constraintWithItem:视图1 attribute:宽度 relatedBy:等于 toItem: nil attribute:宽度 multiplier:1 constant:100];

     

     */

    UIView *view1 = [UIViewnew];

    view1.backgroundColor = [UIColorpurpleColor];

    //启动 autoLayer布局

    view1.translatesAutoresizingMaskIntoConstraints =NO;

    [self.viewaddSubview:view1];

    // X

    NSLayoutConstraint *constraintX = [NSLayoutConstraintconstraintWithItem:view1 attribute:NSLayoutAttributeCenterXrelatedBy:NSLayoutRelationEqualtoItem:self.viewattribute:NSLayoutAttributeCenterXmultiplier:1constant:0];

    [self.viewaddConstraint:constraintX];

    

    // Y

    NSLayoutConstraint *constraintY = [NSLayoutConstraintconstraintWithItem:view1 attribute:NSLayoutAttributeCenterYrelatedBy:NSLayoutRelationEqualtoItem:self.viewattribute:NSLayoutAttributeCenterYmultiplier:1constant:0];

    [self.viewaddConstraint:constraintY];

    

    // 宽度

    NSLayoutConstraint *constraintWidth = [NSLayoutConstraintconstraintWithItem:view1 attribute:NSLayoutAttributeWidthrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeWidthmultiplier:1constant:100];

    [self.viewaddConstraint:constraintWidth];

    //高度

    NSLayoutConstraint *constraintHeight = [NSLayoutConstraintconstraintWithItem:view1 attribute:NSLayoutAttributeHeightrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeHeightmultiplier:1constant:100];


   [self.viewaddConstraint:constraintHeight];

    

    

    UIView *view2 = [[UIViewalloc] init];

    view2.backgroundColor = [UIColoryellowColor];

    

    

    //布局启动

    view2.translatesAutoresizingMaskIntoConstraints =NO;

    [self.viewaddSubview:view2];

    

    NSLayoutConstraint *constraintX2 = [NSLayoutConstraintconstraintWithItem:view2 attribute:NSLayoutAttributeLeadingrelatedBy:NSLayoutRelationEqualtoItem:view1 attribute:NSLayoutAttributeTrailingmultiplier:1constant:0];

    [self.viewaddConstraint:constraintX2];

    

    NSLayoutConstraint *constraintY2 = [NSLayoutConstraintconstraintWithItem:view2 attribute:NSLayoutAttributeToprelatedBy:NSLayoutRelationEqualtoItem:view1 attribute:NSLayoutAttributeBottommultiplier:1constant:0];

    [self.viewaddConstraint:constraintY2];

    

    

    NSLayoutConstraint *constraintWidth2 = [NSLayoutConstraintconstraintWithItem:view2 attribute:NSLayoutAttributeWidthrelatedBy:NSLayoutRelationEqualtoItem:view1 attribute:NSLayoutAttributeWidthmultiplier:0.5constant:0];

    [self.viewaddConstraint:constraintWidth2];

    

    NSLayoutConstraint *constraintHeight2 = [NSLayoutConstraintconstraintWithItem:view2 attribute:NSLayoutAttributeHeightrelatedBy:NSLayoutRelationEqualtoItem:view1 attribute:NSLayoutAttributeHeightmultiplier:1constant:0];

    [self.viewaddConstraint:constraintHeight2];

    


    

}


- (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


0 0
原创粉丝点击