iOS屏幕适配 选择一个屏幕为基准 NSLyoutContraint(系统)

组合一:选择一个屏幕作为基准按照比例伸缩 + NSLyoutContraint 方式jie

组合二:选择一个屏幕作为基准按照比例伸缩 + Masonry 方式(推荐使用)

一、屏幕伸缩

1.以iPhone 6作为基准,得到长和宽的伸缩比例。

iOS屏幕适配 选择一个屏幕为基准 NSLyoutContraint(系统)_第1张图片
pch文件
iOS屏幕适配 选择一个屏幕为基准 NSLyoutContraint(系统)_第2张图片
常量文件

二、NSLyoutContraint的使用

1.注意:要使用NSLayoutConstraint必须设置translatesAutoresizingMaskIntoConstraints为NO;

iOS屏幕适配 选择一个屏幕为基准 NSLyoutContraint(系统)_第3张图片
创建testview
iOS屏幕适配 选择一个屏幕为基准 NSLyoutContraint(系统)_第4张图片
参数介绍
iOS屏幕适配 选择一个屏幕为基准 NSLyoutContraint(系统)_第5张图片
添加约束

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

你可能感兴趣的:(iOS屏幕适配 选择一个屏幕为基准 NSLyoutContraint(系统))