iOS 之Autolayout(VFL)(一)

原创 2015年11月20日 11:34:12
iOS 之Autolayout(VFL)(一)
 VFL的子视图居中,网上搜了很多都没找到有用代码,自己研究出来了。代码如下
  1. UIActivityIndicatorView* prgrssView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];  
  2. prgrssView.translatesAutoresizingMaskIntoConstraints = NO;  
  3. [self.view addSubview:prgrssView];  
  4. [prgrssView release];  
  5. NSDictionary* views = NSDictionaryOfVariableBindings(prgrssView);  
  6. [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[prgrssView]-|" options:NSLayoutFormatAlignAllCenterX metrics:nil views:views]];
 上面的代码可以让prgrssView 水平居中。垂直代码如下
  1. [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[prgrssView]-|" options:NSLayoutFormatAlignAllCenterY metrics:nil views:views]];   
以上代码测试下来只对UIActivityIndicatorView有效,如果一个view有宽度和高度则上面的居中代码会报错。可以通过另一种方式来处理,具体代码如下
  1. //beging  
  2. UIImageView* imagevew = [UIImageView autolayoutView];  
  3. [imagevew setContentMode:UIViewContentModeScaleToFill];  
  4. [imagevew setImage:_tabCellImage];  
  5. [imagevew setTag:AEC_TAG_IMAGE_VIEW];  
  6. [self.view addSubview:imagevew];  
  7. [imagevew release];  
  8.   
  9. NSDictionary* views = NSDictionaryOfVariableBindings(imagevew);  
  10. //设置高度  
  11. [self.view.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[imagevew(60)]" options:0 metrics:nil views:views]];  
  12. //设置宽度  
  13. [self.view.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[imagevew(60)]" options:0 metrics:nil views:views]];  
  14. //垂直居中  
  15. [self.view addConstraint:[NSLayoutConstraint constraintWithItem:imagevew attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]];  
  16. //水平居中  
  17. [self.view addConstraint:[NSLayoutConstraint constraintWithItem:imagevew attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1 constant:0]];  
  18. //end   
 
这样就设置了一个imageview其大小为60*60 在整个视图中居中。

IOS Autolayout(VFL) 处理子视图居中

VFL的子视图居中,网上搜了很多都没找到有用代码,自己研究出来了。代码如下 UIActivityIndicatorView* prgrssView = [[UIActivityIndicat...
  • chujiujiao
  • chujiujiao
  • 2013年10月25日 15:17
  • 26326

代码加约束VFL语法的详细使用介绍(代替Autolayout进行布局,比Autolayout更简单明了,生动直观)

Autoresizing已经满足不了我们加约束的需求,而Autolayout功能强大,应用比较普遍,但有时候需要用代码来加约束,这时候用Autolayout就比较麻烦了,代码繁琐不说,代码量也是大大滴...
  • zlj_jeck
  • zlj_jeck
  • 2016年05月20日 10:43
  • 1116

ios开发autolayout之VFL语言使用总结

ios开发autolayout之 VFL language 1.about VFL language 示例: H:[cancelButton(72)]-12-[acceptButton(50)]...
  • sunnyboy9
  • sunnyboy9
  • 2016年04月12日 13:33
  • 844

OC和Swift纯代码进行Autolayout布局

OC中纯代码进行Autolayout布局    /*      利用 NSLayoutConstraint 类创建具体的约束对象;      添加约束对象到相应的 view 上,代码有这两种...
  • iOSbird
  • iOSbird
  • 2017年09月21日 16:24
  • 544

iOS 纯代码VFL动态布局

其实已经有很多介绍VFL的文章,但在这里我也想记录下自己的理解,给需要的朋友一点帮助,如有错误,欢迎指出。 与VFL很重要的两个很重要的方法是: 1、 /* format: 是VFL字符串。 opts...
  • u013762988
  • u013762988
  • 2015年08月12日 14:36
  • 642

iOS VFL 语法详细

http://www.jianshu.com/p/757cc57fd9ea VFL(Visual Format Language) ps:看这篇文章之前最好先对约束有点了解,如果不了解...
  • jeffasd
  • jeffasd
  • 2016年08月12日 18:12
  • 547

iOS 8 Auto Layout界面自动布局系列4-使用VFL添加布局约束

本系列第一篇文章介绍了自动布局的基本原理,第二篇通过一个简单的例子演示了如何使用IB以可视化方式创建自动布局约束,第三篇使用代码直接创建NSLayoutConstraint实例来定义自动布局约束。本篇...
  • pucker
  • pucker
  • 2015年04月17日 15:53
  • 20377

iOS编程 界面布局 纯代码 VFL编写和添加 左右两个view,按比例设置大小

// //  ViewController.m //  vfl-0710 // //  Created by tianshangrenjian on 15/7/10. /...
  • woshidaniu
  • woshidaniu
  • 2015年07月10日 10:32
  • 978

iOS autolayout和VFL

http://www.cocoachina.com/industry/20131108/7322.html 
  • xiaoyuanzhiying
  • xiaoyuanzhiying
  • 2014年11月13日 21:04
  • 1354

Autolayout之VFL

前面说过给控件一个一个的添加约束代码量很多,写得手软,在这里我们可以用Visual Format Langage,大大的减少了代码量如下图:                      同样的界...
  • chen505358119
  • chen505358119
  • 2015年06月05日 17:04
  • 555
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 之Autolayout(VFL)(一)
举报原因:
原因补充:

(最多只允许输入30个字)