AutoLayout自定义布局基础
来源:互联网 发布:复制信息打开手机淘宝 编辑:程序博客网 时间:2024/06/03 19:49
AutoLayout自定义布局基础代码如下:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self demo4];
}
- (BOOL)prefersStatusBarHidden
{
return YES;
}
//一个视图
- (void)demo1
{
UIView *view = [[UIView alloc]init];
view.backgroundColor = [UIColor cyanColor];
view.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:view];
// VFL横向 竖向相布局
// @"H:|-20-[view(>=200)]-20-|"
// @"V:|-40-[view(>=400)]-20-|"
// 使用VFL需要把视图的对象 与 他的 名字(字符串)绑定起来
NSDictionary *views = NSDictionaryOfVariableBindings(view);
// 给 self.view view 添加约束
// NSLayoutConstraint具体添加约束的类
// + (NSArray *)constraintsWithVisualFormat:(NSString *)format options:(NSLayoutFormatOptions)opts metrics:(NSDictionary *)metrics views:(NSDictionary *)views
// 1.format:VFL 2.opts:同意按照某个方向去布局 3.metrics绑定的参数 4.views 绑定视图的参数
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
}
- (void)demo2
{
UIView *view = [[UIView alloc]init];
view.backgroundColor = [UIColor redColor];
view.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:view];
UIView *view1 = [[UIView alloc]init];
view1.backgroundColor = [UIColor cyanColor];
view1.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:view1];
NSDictionary *views = NSDictionaryOfVariableBindings(view,view1);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view(>=200)]-20-|" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[view1(>=200)]-20-|" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[view(==100)]-100-[view1(==100)]" options:0 metrics:nil views:views]];
// [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-100-[view1(>=100)]" options:0 metrics:nil views:views]];
}
- (void)demo3
{
NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor]];
for (int i = 0; i < 2; i ++) {
UIView *view = [[UIView alloc]init];
view.backgroundColor = colorList[i];
view.tag = i+10;
view.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:view];
}
UIView *redView = (UIView *)[self.view viewWithTag:10];
UIView *yellowView = (UIView *)[self.view viewWithTag:11];
NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView);
// 两个视图横向的约束
NSArray *constraint = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=200)]-20-|"];
for (NSString *VFL in constraint) {
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VFL options:0 metrics:nil views:views]];
}
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-50-[redView(==100)]-100-[yellowView(==100)]" options:0 metrics:nil views:views]];
}
- (void)demo4
{
NSArray *colorList = @[[UIColor redColor],[UIColor yellowColor],[UIColor blueColor]];
for (int i = 0; i < 3; i ++) {
UIView *view = [[UIView alloc]init];
view.backgroundColor = colorList[i];
view.tag = i+10;
view.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:view];
}
UIView *redView = (UIView *)[self.view viewWithTag:10];
UIView *yellowView = (UIView *)[self.view viewWithTag:11];
UIView *blueView = (UIView *)[self.view viewWithTag:12];
NSDictionary *views = NSDictionaryOfVariableBindings(redView,yellowView,blueView);
// @"H:|-20-[redView(>=200)]-20-|"
// @"H:|-20-[yellowView(>=100)]-10-[blueView(yellowView)]-20-|"
NSArray *HList = @[@"H:|-20-[redView(>=200)]-20-|",@"H:|-20-[yellowView(>=30)]-10-[blueView(yellowView)]-20-|"];
NSArray *VList = @[@"V:|-40-[redView(>=50)]-10-[yellowView(redView)]",@"V:|-40-[redView(>=50)]-10-[blueView(redView)]"];
for (int i = 0; i <VList.count; i ++) {
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:HList[i] options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:VList[i] options:0 metrics:nil views:views]];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
- AutoLayout自定义布局基础
- AutoLayout布局
- IOS学习之路AutoLayout(自动布局)--基础认识
- Autolayout 基础
- Autolayout 基础
- Autolayout 基础
- Autolayout 基础
- Autolayout 基础
- [iOS开发]屏幕适配四:Xcode7使用Autolayout拖拽布局基础(3)TableView自动布局
- autolayout自动布局详解
- AutoLayout(自动布局)
- AutoLayout 代码布局自动化
- AutoLayout 自动布局
- ios Autolayout自动布局
- AutoLayout布局 知识点
- autoLayout 自动布局
- AutoLayout布局 知识点
- AutoLayout自动布局
- 测试用例包括什么
- 随机生成10个英文字母,进行判断
- 软件测试的管理定义
- 有关32位机整型和无符号整型取值的最大值最小值问题
- ACM题目中输入数据的处理(C++版)
- AutoLayout自定义布局基础
- 适配iOS9系统
- 黑盒测试目标
- Spring 集成Quartz Scheduler 定时调度任务 Example
- 【CF325E】The Red Button
- C语言之转义字符、变量的内存机制
- java 终端输入小结,输入到数组、文件等(持续更新)
- leetcode112 Path Sum
- 利用DOMContentLoaded判断DOM是否加载完毕