组合一:选择一个屏幕作为基准按照比例伸缩 + NSLyoutContraint 方式jie
组合二:选择一个屏幕作为基准按照比例伸缩 + Masonry 方式(推荐使用)
一、屏幕伸缩
1.以iPhone 6作为基准,得到长和宽的伸缩比例。
二、NSLyoutContraint的使用
1.注意:要使用NSLayoutConstraint必须设置translatesAutoresizingMaskIntoConstraints为NO;
2.文字-可以直接复制使用
//1.创建一个testVivew
UIView *testVivew = [[UIView alloc]init];
testVivew.backgroundColor = [UIColor redColor];
//2.注意首先要添加到subView里面
[self.view addSubview:testVivew];
//3.取消testVivew的autoresizing (YES 代表使用autoresizing 如果使用autolayout需要设置为NO)
testVivew.translatesAutoresizingMaskIntoConstraints = NO;
//4.设置约束
/**
1).WithItem 代表的是需要设置约束的空间(testVivew)
2).attribute 代表的是要做约束的那一条线
NSLayoutAttributeLeft = 1,//左侧
NSLayoutAttributeRight,//右侧
NSLayoutAttributeTop,//上方
NSLayoutAttributeBottom,//下方
NSLayoutAttributeLeading,//首部
NSLayoutAttributeTrailing,//尾部
NSLayoutAttributeWidth,//宽度
NSLayoutAttributeHeight,//高度
NSLayoutAttributeCenterX,//X轴中心
NSLayoutAttributeCenterY,//Y轴中心
NSLayoutAttributeBaseline,//文本底标线
NSLayoutAttributeNotAnAttribute = 0//没有属性
3).relatedBy 比较的方式 =(NSLayoutRelationEqual) <=(NSLayoutRelationLessThanOrEqual) >=(NSLayoutRelationGreaterThanOrEqual)
4).toItem 代表的是被比较的控件
5).attribute 代表的是被比较的控件的比较的位置
6).multiplier 乘数
7).constant 距离的大小
*/
//4.1.设置距离上方
NSLayoutConstraint *testTop = [NSLayoutConstraint constraintWithItem:testVivew attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:100];
[self.view addConstraint:testTop];
//4.2.设置距离左边
NSLayoutConstraint *testLeft = [NSLayoutConstraint constraintWithItem:testVivew attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:100];
[self.view addConstraint:testLeft];
//4.3.设置宽度
// 注意:设置自身的宽高,不需要设置toItem对象,直接传入nil
NSLayoutConstraint *testWidth = [NSLayoutConstraint constraintWithItem:testVivew attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeWidth multiplier:1 constant:100];
// 注意: 约束添加到哪个对象身上
[testVivew addConstraint:testWidth];
//4.4.设置高度
NSLayoutConstraint *testHeight = [NSLayoutConstraint constraintWithItem:testVivew attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1 constant:100];
[testVivew addConstraint:testHeight];
3.Masonry(三方库)
Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。
GitHub- Masonry源码:https://github.com/Masonry/Masonry