AutoLayout相信你们都不陌生,iOS开发中涉及到UI布局的地方,都有它的身影,基本用法不少同窗都会,本文就不作介绍,下面就AutoLayout一些进阶高级用法,作详细介绍,掌握好这些技巧,iOS开发将事半功倍,因为篇幅较长,将拆分为几个篇幅,一一介绍.git
设置视图的宽高比github
视图宽度随着屏幕宽度变化拉伸时,让其高度自动进行等比例拉伸.保持该视图宽高比不变.布局
1.新建工程,在视图控制器中添加一个 imageView,并为其设置一张宽高比为16:9的图片.ui
2.对imageView添加以下约束.atom
1.竖向居中
2.增长宽度约束为320
3.设置Aspect Ratio宽高比为16:9
4.增长顶部约束
复制代码
3.分别选中imageView、宽度约束右键脱线生成变量imgView、imgViewWidth 起一个定时器,动态修改其宽度imgViewWidth属性,代码以下:spa
#import "ViewController.h"
static CGFloat changeValue = -18;//记录变化值
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imgView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imgViewWidth;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(action) userInfo:nil repeats:YES];
}
-(void)action{
_imgViewWidth.constant += changeValue;
if(_imgViewWidth.constant<=150){//最小宽度
changeValue = 18;
}else if(_imgViewWidth.constant>320){//最大宽度
changeValue = -18;;
}
}
@end
复制代码
因为设置了imgView宽高比为16:9,因此宽度动态变化时,其高度也会根据设置的宽高比作相应变化.code
代码地址:github.com/CoderZhuXH/…cdn