标签:
1 #import "ViewController.h" 2 3 @interface ViewController () 4 { 5 UIView *_redView; 6 UIView *_blueView; 7 UIView *_cyanView; 8 } 9 @end 10 11 @implementation ViewController 12 13 - (void)viewDidLoad { 14 [super viewDidLoad]; 15 //1.不再需要设置frame坐标 16 _redView = [[UIView alloc] init]; 17 _redView.backgroundColor = [UIColor redColor]; 18 //2.可能会和 AutoresizingMask 冲突 19 _redView.translatesAutoresizingMaskIntoConstraints = NO; 20 [self.view addSubview:_redView]; 21 22 _blueView = [[UIView alloc] init]; 23 _blueView.backgroundColor = [UIColor blueColor]; 24 _blueView.translatesAutoresizingMaskIntoConstraints = NO; 25 [self.view addSubview:_blueView]; 26 27 _cyanView = [[UIView alloc] init]; 28 _cyanView.backgroundColor = [UIColor cyanColor]; 29 _cyanView.translatesAutoresizingMaskIntoConstraints = NO; 30 [self.view addSubview:_cyanView]; 31 32 //约束 33 34 /* 35 1.view1:给对象view1这个对象设置约束 36 2.attribute: 指 view1.attribute 设置什么样的约束 37 3.relatedBy: 关系 等于 38 4.view2: 参照物 39 5.attribute: view2.attribute 40 6.multiplier:乘数因子 41 7.constant:偏差值 42 43 8.计算: view1.attr1 = view2.attr3*multiplier + constant 44 */ 45 46 //创建距离父 view 的左间距约束 47 NSLayoutConstraint *conLeft = [NSLayoutConstraint constraintWithItem:_redView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20]; 48 //创建右间距约束 49 NSLayoutConstraint *conRight = [NSLayoutConstraint constraintWithItem:_redView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20]; 50 //创建top间距 51 NSLayoutConstraint *conTop = [NSLayoutConstraint constraintWithItem:_redView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0 constant:20]; 52 //创建高度约束 53 NSLayoutConstraint *conHeight = [NSLayoutConstraint constraintWithItem:_redView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeHeight multiplier:0.2 constant:0]; 54 55 //创建下间距 56 //NSLayoutConstraint *conBottom = [NSLayoutConstraint constraintWithItem:_redView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-20]; 57 58 [self.view addConstraints:@[conLeft,conRight,conTop,conHeight]]; 59 60 61 62 63 //NSLog(@"%@",NSStringFromCGRect(_redView.frame)); 64 65 //创建距离父 view 的左间距约束 66 NSLayoutConstraint *blueLeft = [NSLayoutConstraint constraintWithItem:_blueView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20]; 67 //创建右间距约束 68 NSLayoutConstraint *blueRight = [NSLayoutConstraint constraintWithItem:_blueView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:0.5 constant:-10]; 69 //创建top间距 70 NSLayoutConstraint *blueTop = [NSLayoutConstraint constraintWithItem:_blueView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:_redView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:20]; 71 //创建高度约束 72 //NSLayoutConstraint *blueHeight = [NSLayoutConstraint constraintWithItem:_redView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeHeight multiplier:0.2 constant:0]; 73 74 //创建下间距 75 NSLayoutConstraint *blueBottom = [NSLayoutConstraint constraintWithItem:_blueView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-20]; 76 77 [self.view addConstraints:@[blueLeft,blueRight,blueTop,blueBottom]]; 78 79 80 81 82 83 //创建距离父 view 的左间距约束 84 //NSLayoutConstraint *cyanLeft = [NSLayoutConstraint constraintWithItem:_cyanView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:_blueView attribute:NSLayoutAttributeRight multiplier:1.0 constant:20]; 85 NSLayoutConstraint *cyanLeft = [NSLayoutConstraint constraintWithItem:_cyanView attribute:NSLayoutAttributeLeftMargin relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:0.5 constant:10]; 86 //创建右间距约束 87 NSLayoutConstraint *cyanRight = [NSLayoutConstraint constraintWithItem:_cyanView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20]; 88 //创建top间距 89 NSLayoutConstraint *cyanTop = [NSLayoutConstraint constraintWithItem:_cyanView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:_redView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:20]; 90 //创建高度约束 91 //NSLayoutConstraint *blueHeight = [NSLayoutConstraint constraintWithItem:_redView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeHeight multiplier:0.2 constant:0]; 92 93 //创建下间距 94 NSLayoutConstraint *cyanBottom = [NSLayoutConstraint constraintWithItem:_cyanView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-20]; 95 96 [self.view addConstraints:@[cyanLeft,cyanRight,cyanTop,cyanBottom]]; 97 98 } 99 100 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 101 { 102 NSLog(@"%@",NSStringFromCGRect(_redView.frame)); 103 } 104 105 - (void)didReceiveMemoryWarning { 106 [super didReceiveMemoryWarning]; 107 108 } 109 110 @end
标签:
原文地址:http://www.cnblogs.com/liaods/p/4801935.html