文档章节

iOS开发中利用VFL方法添加约束的基本操作步骤,便于自己查阅

托楚齐坎基基
 托楚齐坎基基
发布于 2015/09/21 19:23
字数 291
阅读 332
收藏 0

UIButton *b1 = [UIButton buttonWithType:UIButtonTypeSystem];

    [b1 setTitle:@"确定" forState:UIControlStateNormal];

    b1.backgroundColor=[UIColor lightGrayColor];

    [self.view addSubview:b1];


    UIButton *b2 = [UIButton buttonWithType:UIButtonTypeSystem];

    [b2 setTitle:@"取消" forState:UIControlStateNormal];

    b2.backgroundColor=[UIColor lightGrayColor];

    [self.view addSubview:b2];


    UIButton *b3 = [UIButton buttonWithType:UIButtonTypeSystem];

    [b3 setTitle:@"重试" forState:UIControlStateNormal];

    b3.backgroundColor=[UIColor lightGrayColor];

    [self.view addSubview:b3];


    //预备步骤:关闭自动翻译约束功能

    b1.translatesAutoresizingMaskIntoConstraints = NO;

    b2.translatesAutoresizingMaskIntoConstraints = NO;

    b3.translatesAutoresizingMaskIntoConstraints = NO;

    // 此函数可以自动生成一个Dictionary

    // 将传入的对象引用作为value,将引用名变成字符串作为key

    // 传入的是 (b1,b2,b3)

    // 则生成的字典如下:

    // {@"b1":b1,@"b2":b2,@"b3":b3}

    NSDictionary *diction1 = NSDictionaryOfVariableBindings(b1,b2,b3);

    // vfl式子中的一些特殊含义的数字做一个名称对照表

    NSDictionary *diction2 = @{@"top":@20,@"left":@20,@"right":@20,@"spacing":@10};


    //1.准备一个VFL

    NSString *hVFL = @"|-left-[b1]-spacing-[b2(b1)]-spacing-[b3(b1)]-right-|";

    //2.创建约束

    NSArray *cs1 = [NSLayoutConstraint constraintsWithVisualFormat:hVFL options:NSLayoutFormatAlignAllCenterY metrics:diction2 views:diction1];

    //3.将约束添加到父视图上

    [self.view addConstraints:cs1];


    //创建竖直方向的约束

    NSString *vVFL = @"V:|-top-[b1]";

    NSArray *cs2 = [NSLayoutConstraint constraintsWithVisualFormat:vVFL options:0 metrics:diction2 views:diction1];

    [self.view addConstraints:cs2];


© 著作权归作者所有

托楚齐坎基基
粉丝 1
博文 16
码字总数 7868
作品 0
程序员
私信 提问
SegmentFault D-Day 2015 北京:iOS 站

SegmentFault D-Day 介绍 SegmentFault D-Day,是由国内最前沿的开发者社区 SegmentFault 主办的技术沙⻰,于2014年正式启动。2015年上半年D-Day已在北、上、广、深、杭等城市成功举办9场,活...

文洁洁洁
2015/11/26
245
0
SegmentFault D-Day 2015 北京:iOS 站

SegmentFault D-Day 介绍 SegmentFault D-Day,是由国内最前沿的开发者社区 SegmentFault 主办的技术沙⻰,于2014年正式启动。2015年上半年D-Day已在北、上、广、深、杭等城市成功举办9场,活...

文洁洁洁
2015/11/26
13
0
iOS Sprite Kit教程之申请和下载证书

iOS Sprite Kit教程之申请和下载证书 模拟器虽然可以实现真机上的一些功能,但是它是有局限的。例如,在模拟器上没有重力感应、相机机等。如果想要进行此方面的游戏的开发,进行程序测试时,...

大学霸
2015/07/24
150
0
iOS Simulator功能介绍关于Xamarin IOS开发

iOS Simulator功能介绍关于Xamarin IOS开发 iOS Simulator功能介绍 在图1.38所示的运行效果中,所见到的类似于手机的模型就是iOS Simulator。在没有iPhone或iPad设备时,可以使用iOS Simulat...

大学霸
2015/04/17
793
0
Flutter「发布预览版 2」让 iOS 应用至臻完美

Flutter 是 Google 面向移动端应用推出的一套跨平台开发工具,助力开发者在 iOS 和 Android 两个平台上开发高质量的原生应用界面。为期两日的中国 2018 Google开发者大会于今日在上海拉开帷幕...

Android_开发者
2018/09/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

从0搭建自己的webpack开发环境(五)

往期回顾: 从0搭建自己的webpack开发环境(一) 从0搭建自己的webpack开发环境(二) 从0搭建自己的webpack开发环境(三) 从0搭建自己的webpack开发环境(四) 前四篇文章我们已经掌握了w...

前端优选
昨天
5
0
docker 构建php-fpm 7.2(swoole) 镜像

mkdir -p ~/mnt/docker/phpmkdir -p ~/mnt/docker/php#下载swoole-2.2.0.tgz安装包到software 下载地址:http://pecl.php.net/package/swoole/2.2.0#创建Dockerfilevim ~/docker/......

Jack088
昨天
5
0
简单工厂

定义:由一个工厂对象决定创建出哪一种产品类的实例 类型:创建型,但不属于GOF23种设计模式 工厂类负责创建的对象比较少 客户端(应用层)只知道传入工厂类的参数,对于如何创建对象,不关心...

东风破2019
昨天
4
0
SSH安全加强两步走

从 OpenSSH 6.2 开始已经支持 SSH 多因素认证,本文就来讲讲如何在 OpenSSH 下启用该特性。 OpenSSH 6.2 以后的版本多了一个配置项 AuthenticationMethods。该配置项可以让 OpenSSH 同时指定...

Linux就该这么学
昨天
7
0
聊聊nacos的TcpSuperSenseProcessor

序 本文主要研究一下nacos的TcpSuperSenseProcessor TcpSuperSenseProcessor nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/TcpSuperSenseProcessor.java @Compon......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部