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]; }
其他一些方法就不再写了,很简单
相关文章推荐
- 浅谈iOS面对对象之合成存取方法
- ios 自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- iOS编程——类的定义与对象的创建
- iOS模糊效果
- iOS编程——面向对象的编程
- (5/18)重学Standford_iOS7开发_视图控制器生命周期_课程笔记
- ios开发-懒加载和模型的封装
- iOS 九宫格解锁源码
- iOS 关闭图片渲染
- iOS项目开发小技巧(二)--KVC在项目中常见用法
- IOS CoreText --- 图文混排之代码封装
- iOS运行时 runtime
- iOS常用正则表达式
- iOS 判断设备是否越狱
- 我和ios有个约定 (2)
- 面向对象-基本思想
- 面向对象-三大特性
- iostat命令详解
- 输出Bag中的所有记录为一个json数组---精通android、IOS App应用服务程序开发
- 仿制新浪微博iOS客户端之二-项目基础搭建及相关设置