iOS AutoLayout 简单运用(纯代码)
来源:互联网 发布:js 正则 可有可无 编辑:程序博客网 时间:2024/05/19 02:03
举例说明:创建一个grayView(宽150 高100 距上200 距左100)
方法一:原生API
UIView *grayView = [UIView new]; grayView.backgroundColor = [UIColor lightGrayColor]; // 禁止将 autoresizingmask 转换为 constraints grayView.translatesAutoresizingMaskIntoConstraints = NO; [self.view addSubview:grayView]; // 添加 width 约束 NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:grayView attribute:(NSLayoutAttributeWidth) relatedBy:(NSLayoutRelationEqual) toItem:nil attribute:(NSLayoutAttributeNotAnAttribute) multiplier:0.0 constant:150]; // 添加 height 约束 NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:grayView attribute:(NSLayoutAttributeHeight) relatedBy:(NSLayoutRelationEqual) toItem:nil attribute:(NSLayoutAttributeNotAnAttribute) multiplier:0.0 constant:100]; // 添加 left 约束 NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:grayView attribute:(NSLayoutAttributeLeft) relatedBy:(NSLayoutRelationEqual) toItem:self.view attribute:(NSLayoutAttributeLeft) multiplier:1.0 constant:100]; // 添加 top 约束 NSLayoutConstraint *topConstraint = [NSLayoutConstraint constraintWithItem:grayView attribute:(NSLayoutAttributeTop) relatedBy:(NSLayoutRelationEqual) toItem:self.view attribute:(NSLayoutAttributeTop) multiplier:1.0 constant:200]; [grayView addConstraint:widthConstraint]; [grayView addConstraint:heightConstraint]; [self.view addConstraint:leftConstraint]; [self.view addConstraint:topConstraint];
方法二:VFL(Visual Format Language)
UIView *grayView = [UIView new]; grayView.backgroundColor = [UIColor lightGrayColor]; grayView.translatesAutoresizingMaskIntoConstraints = NO; [self.view addSubview:grayView]; // format参数 NSString *Hvfl = @"H:|-left-[grayView(150)]"; NSString *Vvfl = @"V:|-top-[grayView(100)]"; // 设置 margin 数值 NSDictionary *metrics = @{@"top":@200,@"left":@100}; // 把要添加约束的view 转成字典 NSDictionary *views = NSDictionaryOfVariableBindings(grayView);// 这个方法会自动把传入的参数椅子垫的形式返回,字典的key就是其本身的名字,如@{@"grayView":grayView} // 添加对齐方式 NSLayoutFormatOptions ops = NSLayoutFormatAlignAllLeft | NSLayoutFormatAlignAllTop;// 左边与顶部 NSArray *Hconstraints = [NSLayoutConstraint constraintsWithVisualFormat:Hvfl options:ops metrics:metrics views:views]; NSArray *Vconstraints = [NSLayoutConstraint constraintsWithVisualFormat:Vvfl options:ops metrics:metrics views:views]; [self.view addConstraints:Hconstraints]; [self.view addConstraints:Vconstraints];
运行如下:
本篇博客只是针对基础知识点的整理归纳与简单应用 详细代码解析请参考如下博客:
史上比较用心的纯代码实现 AutoLayout
iOS Autolayout之VFL
阅读全文
0 0
- iOS AutoLayout 简单运用(纯代码)
- iOS Masonry 纯代码布局 AutoLayout
- IOS纯代码实现AutoLayout适配多屏幕
- 【iOS开发-113】在storyboard上用AutoLayout,纯代码实现AutoLayout布局方法以及简单动画
- 纯代码实现 AutoLayout
- 纯代码实现AutoLayout
- ios 纯代码 自动布局 autolayout 第三方库
- iOS在纯代码中使用AutoLayout添加约束
- AutoLayout之纯代码布局
- AutoLayout纯代码相关知识
- ios之Autolayout的运用
- iOS 代码 AutoLayout
- iOS AutoLayout代码版
- ios autolayout代码布局
- ios autolayout 代码设置
- ios-代码实现autolayout
- ios-AutoLayout(自动布局代码控制)简单总结
- ios-AutoLayout(自动布局代码控制)简单总结
- java接口的使用
- Druid大数据实时处理的开源分布式系统——Historical Node
- Oracle数据库、实例、用户、表空间、表之间的关系
- <二分答案加验证||最小生成树>bzoj 1821 部落划分
- 腾讯浏览服务接入文档
- iOS AutoLayout 简单运用(纯代码)
- <考试题> codevs 5440 运输计划 (二分+lca+dfs序+树上差分)
- 1701 H2王建瑜 连续第十二天
- 笨方法学习Python-习题19: 函数和变量
- JAVA动态规划,上梯子问题
- java 代理模式的三种用法
- 数据结构上机实践第八周项目6- 猴子选大王(数组版)
- MVC
- (十三)Java设计模式之桥梁模式