自动布局Autoresizing autolayout VFL
来源:互联网 发布:无缝贴图软件 编辑:程序博客网 时间:2024/05/17 07:51
屏幕适配发展历程:
代码计算 frame->autoresizing(父子控件之间的关系)->autolayout(任何控件都能产生关系)-> sizeclass(对屏幕适配进行分类,真正布局还是 autolayout)
一、autoresizing:
1.两个属性:autoresizingMask,autoresizesSubviews
autoresizingMask的枚举值:
iewAutoresizingNone = 0, // 不会随着父视图改变UIViewAutoresizingFlexibleLeftMargin = 1 << 0, // 调整左边,保证右边UIViewAutoresizingFlexibleWidth = 1 << 1, // 调整宽度,保证左右UIViewAutoresizingFlexibleRightMargin = 1 << 2, // 调整右边,保证左边UIViewAutoresizingFlexibleTopMargin = 1 << 3, // 调整顶部,保证底部UIViewAutoresizingFlexibleHeight = 1 << 4, // 调整高度,保证上下UIViewAutoresizingFlexibleBottomMargin = 1 << 5 // 调整底部,保证底部
二、autolayout:
核心概念:约束 参照
autolayout 和 frame 一样必须设置 xywh
思路:
1> 创建控件并取消 autoresizing功能blueView.translateAutoresizingMaskIntoConstraints = NO;2> 创建约束NSLayoutConstraint *blueLeftCon = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1.0 constant:30];3> 添加约束约束一定要添加到父 View 上[self.view addConstraint:blueLeftCon];
自动布局核心公式:
blueView.NSLayoutAttributeLeft = self.view.NSLayoutAttributeLeft * 1.0 + 30;
三、VFL 语言
H:水平 V:竖直 |边界 -距离 [控件(控件宽/高)] [控件A(==控件B)]
思路:
1> 创建控件并取消 autoresizing功能blueView.translateAutoresizingMaskIntoConstraints = NO;2> 创建约束 VFL// 水平:blueView 距离父 view 左边界30,距离父 view 的右边界NSString *hVFL = @"H:|-30-[blueView]-30-|";NSArray *hCons = [NSLayoutConstraint constraintsWithVisualFormat:hVFL options:0 metrics:nil views:@{@"blueView" : blueView}];//@"V:|-30-[blueView(50)]-30-[redView(==blueView)]3> 添加约束self.view addConstraints:hCons];
注意:VFL 是不能进行算术运算的,有的话只能用 autolayout创建约束。
+ (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views;format:VFL 语句opts:约束类型metrics:VFL语句中用到的具体数值views:VFL语句中用到的控件
0 0
- 自动布局Autoresizing autolayout VFL
- 01-自动布局 AutoResizing VFL Autolayout
- iOS--VFL--autolayout--自动布局
- IOS开发-自动布局Autoresizing和Autolayout
- OC-Layout自动布局-AutoResizing&AutoLayout&
- IOS autoLayout之使用VFL语言进行代码自动布局
- 自动布局:AutoLayout代码实现:NSLayoutConstraint、VFL、Mansony
- iOS的屏幕适配之Autoresizing、Autolayout、VFL、Masonry
- 自动布局:AutoResizing
- iOS 自动布局 VFL
- VFL 自动布局
- VFL-自动布局
- iOS适配之两大自动布局利器—— Autoresizing、Autolayout
- IOS自动布局之Autoresizing
- IOS自动布局之Autoresizing
- IOS中自动布局autoresizing
- IOS自动布局之Autoresizing
- IOS自动布局之Autoresizing
- BFS POJ3278Catch That Cow
- 多线程编程基础知识
- NY58 最少步数
- POJ2406 Power Strings(kmp)
- 记2015年的国庆节--给自己
- 自动布局Autoresizing autolayout VFL
- POJ - 2785 4 Values whose Sum is 0(二分搜索)
- POJ2752 Seek the Name, Seek the Fame(kmp)
- JS点名神器
- php获取内容中的所有图片
- POJ3461 Oulipo(kmp)
- Java 基本类型 long 的一些使用陷阱
- IOS HTTP GET POST学习笔记
- 迅雷 API 接口说明文档 -调用迅雷自动下载