您的位置:首页 > 移动开发 > IOS开发

iOS用VFL语言实现屏幕适配

2015-05-31 14:33 525 查看
界面显示效果如下:



布局文件的编写:

//初始化视图控件
- (void)initView{
/**
*  子视图
*/
subView = [[UIView alloc] init];
//添加到视图
[self.view addSubview:subView];

//禁用autoresizing
subView.translatesAutoresizingMaskIntoConstraints = NO;
//添加约束
NSArray *viewW = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[subView]-0-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"subView":subView}];
[self.view addConstraints:viewW];
NSLayoutConstraint *viewH = [NSLayoutConstraint constraintWithItem:subView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:subView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0];
[self.view addConstraint:viewH];
NSLayoutConstraint *subViewCenter = [NSLayoutConstraint constraintWithItem:subView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0];
[self.view addConstraint:subViewCenter];

/**
*  子视图中的九个按钮
*/
btn1 = [UIButton buttonWithType:UIButtonTypeSystem];
btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
btn3 = [UIButton buttonWithType:UIButtonTypeCustom];
btn4 = [UIButton buttonWithType:UIButtonTypeCustom];
btn5 = [UIButton buttonWithType:UIButtonTypeCustom];
btn6 = [UIButton buttonWithType:UIButtonTypeCustom];
btn7 = [UIButton buttonWithType:UIButtonTypeCustom];
btn8 = [UIButton buttonWithType:UIButtonTypeCustom];
btn9 = [UIButton buttonWithType:UIButtonTypeCustom];

//添加按钮到数组
btnArray = @[btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9];
//添加按钮
for (UIButton *btn in btnArray) {
//将所有按钮添加到视图
[subView addSubview:btn];
//禁用所有按钮的autoresizing
btn.translatesAutoresizingMaskIntoConstraints = NO;
}

//横排
NSArray *btn123 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-1-[btn1]-1-[btn2(==btn1)]-1-[btn3(==btn1)]-1-|" options:NSLayoutFormatAlignAllTop metrics:nil views:@{@"btn1":btn1,@"btn2":btn2,@"btn3":btn3}];
[subView addConstraints:btn123];
NSArray *btn456 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-1-[btn4]-1-[btn5(==btn4)]-1-[btn6(==btn4)]-1-|" options:NSLayoutFormatAlignAllTop metrics:nil views:@{@"btn4":btn4,@"btn5":btn5,@"btn6":btn6}];
[subView addConstraints:btn456];
NSArray *btn789 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-1-[btn7]-1-[btn8(==btn7)]-1-[btn9(==btn7)]-1-|" options:NSLayoutFormatAlignAllTop metrics:nil views:@{@"btn7":btn7,@"btn8":btn8,@"btn9":btn9}];
[subView addConstraints:btn789];
//竖排
NSArray *btn147 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-1-[btn1]-1-[btn4(==btn1)]-1-[btn7(==btn1)]-1-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"btn1":btn1,@"btn4":btn4,@"btn7":btn7}];
[subView addConstraints:btn147];
NSArray *btn258 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-1-[btn2]-1-[btn5(==btn2)]-1-[btn8(==btn2)]-1-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"btn2":btn2,@"btn5":btn5,@"btn8":btn8}];
[subView addConstraints:btn258];
NSArray *btn369 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-1-[btn3]-1-[btn6(==btn3)]-1-[btn9(==btn3)]-1-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"btn3":btn3,@"btn6":btn6,@"btn9":btn9}];
[subView addConstraints:btn369];

/**
*  返回按钮
*/
returnBtn = [[UIButton alloc] init];
[returnBtn setTitle:@"返回主界面" forState:UIControlStateNormal];
[returnBtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
returnBtn.titleLabel.font = [UIFont boldSystemFontOfSize:40.0f];
[returnBtn addTarget:self action:@selector(returnBack) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:returnBtn];
//禁用autoresizing
returnBtn.translatesAutoresizingMaskIntoConstraints = NO;
//返回按钮的宽度
NSArray *returnBtnW = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-40-[returnBtn]-40-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"returnBtn":returnBtn}];
[self.view addConstraints:returnBtnW];
//返回按钮的垂直位置
NSLayoutConstraint *returnBtnV = [NSLayoutConstraint constraintWithItem:returnBtn attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:0.2 constant:0];
[self.view addConstraint:returnBtnV];

/**
*  计时标签
*/
timeLabel = [[UILabel alloc] init];
timeLabel.text = @"00:00";
[self.view addSubview:timeLabel];
//禁用autoresizing
timeLabel.translatesAutoresizingMaskIntoConstraints = NO;
timeLabel.font = [UIFont boldSystemFontOfSize:30];
timeLabel.textAlignment = NSTextAlignmentCenter;
//计时标签的宽度
NSArray *timeLabelW = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[timeLabel]-0-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:@{@"timeLabel":timeLabel}];
[self.view addConstraints:timeLabelW];
//计时标签的垂直位置
NSLayoutConstraint *timeLabelV = [NSLayoutConstraint constraintWithItem:timeLabel attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1.8 constant:0];
[self.view addConstraint:timeLabelV];
}


其他一些方法就不再写了,很简单
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: