iOS开发 - 屏幕适配之VFL语言
来源:互联网 发布:上海期货交易软件下载 编辑:程序博客网 时间:2024/06/05 00:09
1、简介
VFL语言是苹果给了简化屏幕适配的工作量推出的一门语言,以不同的方向进行添加约束的
VFL比纯代码更加的宏观,它在添加约束的同时考虑不同控件之间的关系,纯代码是每个控件单独添加约束
2、核心
V 垂直方向
H 水平方向
- 控件之间的间距 如-20-代表间距为20
[] 具体控件 如[view]代表控件view,[view(40)],代表宽度或高度为40
| 父控件的边缘
3、代码演示
需求
1 黄色控件 +橙色控件
2 高度均为40,黄色在做左,橙色在右
3 两控件之间的水平间距为20
4 两控件距离屏幕底部间距均为20
5 黄色控件距离屏幕左侧间距为20,橙色控件距离屏幕右侧间距为20
关键代码
UIView *yellow = [[UIView alloc] init];yellow.backgroundColor = [UIColor yellowColor];[self.view addSubview:yellow];UIView *orange = [[UIView alloc] init];orange.backgroundColor = [UIColor orangeColor];[self.view addSubview:orange];yellow.translatesAutoresizingMaskIntoConstraints = NO;orange.translatesAutoresizingMaskIntoConstraints = NO;// constraintsWithVisualFormat:具体约束// options:约束的方式// metrics:占位// 以键值对的形式说明对应的控件// 1* @{@"yellow" : yellow, @"orange" : orange}];// 2* NSDictionaryOfVariableBindings(yellow, orange);NSDictionary *metrics = @{@"margin" : @20};NSDictionary *views = NSDictionaryOfVariableBindings(yellow, orange);NSArray *cons3 = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-margin-[yellow]-margin-[orange(==yellow)]-margin-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:metrics views:views];[self.view addConstraints:cons3];NSArray *cons4 = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[yellow(==yellowHeight)]-margin-|" options:0 metrics:@{@"margin" : @20, @"yellowHeight" : @40} views:views];[self.view addConstraints:cons4];
4、总结
4.1 VFL语言简化的编程的工作量,比起代码更加的宏观
4.2 VFL语言的格式串,如果写错一个地方就会出现问题,哪怕是少写了一条横线
4.3 个人建议,如果比较熟练,可以使用纯代码的方式,因为纯代码更加的精细化,容易查错和考虑,因为平铺适配无非就考虑位置和宽高
4.4 以后会讲解更加简便的屏幕适配方法,如Masonry这个库的使用
0 0
- iOS开发 - 屏幕适配之VFL语言
- iOS用VFL语言实现屏幕适配
- iOS的屏幕适配之Autoresizing、Autolayout、VFL、Masonry
- IOS开发-VFL语言
- ios开发autolayout之VFL语言使用总结
- ios进阶--Autolayout 之VFL语言
- ios-VFL语言
- IOS之VFL使用
- iOS开发 之 屏幕适配
- IOS autoLayout之使用VFL语言进行代码自动布局
- IOS开发之屏幕适
- IOS开发笔记之AutoLayout及VFL探索
- AutoLayout代码适配之VFL
- iOS开发UI系列之屏幕适配
- iOS开发之-屏幕适配相关小结-
- iOS开发 - 屏幕适配之纯代码
- iOS VFL语言的简单实用
- iOS海哥开发笔记 (海哥原创,iOS 之Autolayout(VFL)(一))
- 算法题:字符串分隔填充
- #98 Sort List
- Js中调用new方法生成对象的过程
- CentOS6.5 安装 Mysql
- CodeForces 546D (质因子打表法)
- iOS开发 - 屏幕适配之VFL语言
- Java 中 Comparable 和 Comparator 比较
- iOS之NSURLConnection
- 关于视频剪辑算法的简单实现
- STS设置在其他文档上使用HTML验证的方法
- Python快速学习第四天
- 史上最全最强SpringMVC详细示例实战教程
- Mysql 服务无法启动 的解决办法
- C++——模板特化和偏特化