XCOde 5 的界面布局一些新特性
// 创建两个按钮
UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn1 setFrame:CGRectMake(200, 210, 100, 40)];
[btn1 setTitle:@"点击" forState:UIControlStateNormal];
[self.view addSubview:btn1];
[btn1 setTranslatesAutoresizingMaskIntoConstraints:NO];
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn2 setFrame:CGRectMake(200, 260, 100, 40)];
[btn2 setTitle:@"按钮" forState:UIControlStateNormal];
[self.view addSubview:btn2];
[btn2 setTranslatesAutoresizingMaskIntoConstraints:NO];
// 使用 VFL控制按钮位置
// 参数
// 1.可视化格式语言字符串
// 2.格式选择
// 3.所有参加格式化布局数据的字典,串nil也可以的
//4.所有参加格式化布局的对象字典
// 返回值:根据VFL生成的一组约束
NSDictionary *dict = NSDictionaryOfVariableBindings(btn1,btn2);
// @"H:[btn1]-50-|" [btn1]左右如果有|-50-或者-50-|说明它是在btn1左右个间距50是个点得距离
NSArray *arrayH1 = [NSLayoutConstraintconstraintsWithVisualFormat:@"H:[btn1]-50-|" options:0 metrics:nil views:dict];
[self.view addConstraints:arrayH1];
NSArray *arrayH2 = [NSLayoutConstraintconstraintsWithVisualFormat:@"H:[btn2]-50-|" options:0 metrics:nil views:dict];
[self.view addConstraints:arrayH2];
// [self.view addConstraints:arrayH1];
// [self.view addConstraints:arrayH2];
// 垂直方向的间距
NSArray *arrayV = [NSLayoutConstraintconstraintsWithVisualFormat:@"V:|-60-[btn1(20)]-20-[btn2]" options:0metrics:nil views:dict];
[self.view addConstraints:arrayV];
XCOde 5 的界面布局一些新特性的更多相关文章
- Win10系列:UWP界面布局进阶6
在Windows 10的"个性化设置"中,用户可以更改计算机在锁屏状态下的背景图片,除此之外,也可以通过Windows应用商店应用程序将喜欢的图片设置为锁屏背景,下面通过一个示例来 ...
- Xcode 8 的 Debug 新特性
Contents OverView Static Analyzer Localizability Instance Cleanup Nullablility Runtime Issue View De ...
- WWDC2016 Session笔记 - Xcode 8 Auto Layout新特性
目录 1.Incrementally Adopting Auto Layout 2.Design and Runtime Constraints 3.NSGridView 4.Layout Feedb ...
- WWDC2016 Session笔记 – Xcode 8 Auto Layout新特性
目录 1.Incrementally Adopting Auto Layout 2.Design and Runtime Constraints 3.NSGridView 4.Layout Feedb ...
- Xcode 8 的 Debug 新特性 —- WWDC 2016 Session 410 & 412 学习笔记
Contents OverView Static Analyzer Localizability Instance Cleanup Nullablility Runtime Issue View De ...
- Android应用--新浪微博客户端新特性滚动视图和启动界面实现
新浪微博客户端新特性滚动视图和启动界面实现 2013年8月20日新浪微博客户端开发之启动界面实现 前言: 使用过新浪微博客户端的童鞋都清楚,客户端每一次升级之后第一次启动界面就会有新特性的介绍,用户通 ...
- Xcode中StoryBoard Reference 新特性的使用
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- iOS彩票项目--第四天,新特性界面搭建,UICollectionViewController的初次使用
一.新特性界面搭建的思路: 在AppDelegate加载主窗体的时候进行判断程序版本号,直接进入程序或者进入新特性展示界面 取出当前的版本号,与旧的版本号相比较(旧的版本号在进入程序的时候存起来 =& ...
- Xcode And iOS9新特性
Xcode And iOS9 1. Xcode7 新特性 > 可直接在真机上运行自己的应用,只需要有苹果账号,无需购买苹果开发者账号. > 可设置在出现 EXC_BAD_ACCESS 错误 ...
随机推荐
- [LOJ6145]Easy
题意给出一棵树,每次询问一个点$x$到编号在$[l,r]$中的点的距离的最小值.$n,q\le 10^5$ 大概是最简单的动态点分治了,注意开大数组即可,如果改成求最大值这道题会有意思很多 代码: # ...
- SaltStack执行状态收集入库-第五篇
实验目标 1.salt执行的状态然后结果写入MySQL可以方便查询执行salt执行的历史记录 实现方法 1.使用salt的return功能,是minion直接写入MySQL(相对比较麻烦) 2.使用m ...
- vue编译环境和线上环境url切换
新建一个配置js,导入到接口请求管理类,可以自动根据环境切换if (process.env.NODE_ENV == 'development') { baseUrl = ''; }else{ base ...
- Tars环境搭建之路
搭建Tars可以通过两种方式:docker,linux原生方式 一:docker方式安装环境 这个方式相对来说简单多了 docker本质上是通过linux容器概念来实现复制软件集成环境,达到完美同步原 ...
- websocket 重连解决方案
1.websocket 重连的脚本:https://github.com/joewalnes/reconnecting-websocket reconnecting-w ...
- Keepalived安装配置入门
准备两台虚拟机,IP如下: A:192.168.1.11 B:192.168.1.12 A为Master,B为BackUp 1.安装 yum install keepalived -y 2.配置 A服 ...
- C#实现日历样式的下拉式计算器
C#实现日历样式的下拉式计算器 原文地址:http://developer.51cto.com/art/201508/487486.htm 如果我们正在做一个类似于库存控制和计费系统的项目,有些部分可 ...
- C# 人民币转成大写
/// <summary> /// 转换人民币大小金额 /// </summary> /// <param name="num">金额</ ...
- 聚类算法——MCL
最近在看聚类方面的论文,接触到了MCL聚类,在网上找了许久,没什么中文的资料,可能写的最具体的便是GatsbyNewton写的 马尔可夫聚类算法(MCL) 这篇博客了.但是,其中仍有一些不详细的地方. ...
- duff's device
const duffDevice = (items, process) => { let iterations = Math.floor(items.length / 8); let start ...