文档章节

AutoLayout的代码写法

 泊竹
发布于 2014/04/24 18:36
字数 184
阅读 7331
收藏 6
点赞 1
评论 2
#import "TestViewController.h"

@interface TestViewController ()

@property (nonatomic, strong) UILabel   *textInfoLabel;
@property (nonatomic, strong) UIView    *backgroundView;

@end

@implementation TestViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.backgroundView = [[UIView alloc] init];
    [self.backgroundView setTranslatesAutoresizingMaskIntoConstraints:NO];
    self.backgroundView.backgroundColor = [UIColor blueColor];
    [self.view addSubview:self.backgroundView];
    
    self.textInfoLabel = [[UILabel alloc] init];
    [self.textInfoLabel setTranslatesAutoresizingMaskIntoConstraints:NO];
    self.textInfoLabel.backgroundColor = [UIColor redColor];
    self.textInfoLabel.numberOfLines = 0;
    self.textInfoLabel.font = [UIFont systemFontOfSize:15];
    self.textInfoLabel.text = @"测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试";
    [self.view addSubview:self.textInfoLabel];

    NSDictionary *views = @{@"backgroundView":self.backgroundView, @"textInfoLabel":self.textInfoLabel};
    NSDictionary *metrics = @{@"LeftStep":@20, @"TopStep":@20, @"Width":@200, @"Height":@"100", @"VStep":@20, @"HStep":@20};
    NSString *vLayoutString = @"V:|-TopStep-[backgroundView(==Width)]-VStep-[textInfoLabel(>=20)]";
    NSArray *vLayoutArray = [NSLayoutConstraint constraintsWithVisualFormat:vLayoutString options:0 metrics:metrics views:views];
    
    NSString *hLayoutstring = @"H:|-LeftStep-[backgroundView(==Height)]-HStep-[textInfoLabel(==100)]";
    NSArray *hLayoutArray = [NSLayoutConstraint constraintsWithVisualFormat:hLayoutstring options:0 metrics:metrics views:views];
    
    [self.view addConstraints:vLayoutArray];
    [self.view addConstraints:hLayoutArray];
}

@end


© 著作权归作者所有

共有 人打赏支持
粉丝 90
博文 67
码字总数 13285
作品 0
徐汇
加载中

评论(2)

快乐赤子心
手写好麻烦啊,这乱七八糟的字符串都怎么写的啊?好郁闷
快乐赤子心
棒棒嗒俊神
AutoLayout框架Masonry使用心得

我们组分享会上分享了页面布局的一些写法,中途提到了AutoLayout,会后我决定将很久前挖的一个坑给填起来(还有好多坑就不说了,说了不填更毁形象了)。 可使用的框架首推Masonry,关于为啥选...

北方人在上海 ⋅ 2016/05/25 ⋅ 0

iOS界面布局之四——使用第三方库Masonry进行autolayout布局

iOS界面布局之四——使用第三方库Masonry进行autolayout布局 一、引言 在前面博客,我们讨论了使用iOS原生的框架代码来进行autolayout布局。在使用中,我们会发现,无论是代码量还是结构的清...

珲少 ⋅ 2015/11/02 ⋅ 5

ios8 iOS Auto Layout

引言: Auto Layout是iOS6发布后引入的一个全新的布局特性,其目的是弥补以往autoresizing在布局方面的不足之处,以及未来面对更多尺寸适配时界面布局可以更好的适应. 要完全掌握Auto Layout是一...

AK_47 ⋅ 2014/10/31 ⋅ 0

AutoLayout(III):浅析动画

前面讲过了AutoLayout的基本概念和遇到的一些问题,这篇讲的是AutoLayout下的动画。自动布局已经比传统的Frame复杂,动画也会稍微更复杂些。期望通过这篇文章,能够对AutoLayout下的动画有理...

hejunbinlan ⋅ 2016/07/29 ⋅ 0

哪里写Autolayout布局最合适?

用户需求一览 申请者fengmingxiao 项目大致代码行数500 项目 GitHub 地址 项目备注 探究UI布局方面的代码应该怎么写才是规范的,希望您能够 看看Readme,万分感谢,这不是什么大工程,但是我...

hejunbinlan ⋅ 2016/07/29 ⋅ 0

iOS开发通过代码方式使用 NSLayoutConstraint + Masonry

随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫切和必要。(包括:iPhone4/4s,iPhone5/5s,iPhone6/6s,iPhone 6p/6ps)。 在 iPhone6出现以前,我们接触...

Daniel_s ⋅ 2016/07/13 ⋅ 0

从此爱上iOS Autolayout

这篇不是autolayout教程,只是autolayout动员文章和经验之谈,在本文第五节友情链接和推荐中,我将附上足够大家熟练使用autolayout的教程。这篇文章两个月前就想写下来,但因为一直工作较多,...

hejunbinlan ⋅ 2016/08/01 ⋅ 0

IOS自动布局与非自动布局嵌套使用的解决办法

/关于autolayout多说几句 在一个控件内存在autolayout与autoresize子控件时,要适配部分autoresize translatesAutoresizingMaskIntoConstraints 默认是打开转换的 //在autoresize下可以通过以...

ericChen ⋅ 2015/03/12 ⋅ 0

iOS AutoLayout进阶(五)UITableViewCell自动高度

前言 前面几个章节详细介绍了Aspect Ratio、Content Hugging Priority(抗拉伸优先级)和Content Compression Resistance Priority(抗压缩优先级), 本文将综合运用这些特性,在不计算UITableVi...

朱晓辉 ⋅ 2017/11/27 ⋅ 0

iOS开发之Autolayout

非盈利无广告开发者专用网址导航:www.dev666.com 1、概述 在以前的iOS程序中,是如何设置布局UI界面的? (1)经常编写大量的坐标计算代码 (2)为了保证在3.5 inch和4.0 inch屏幕上都能有完...

feng_blog ⋅ 2015/08/31 ⋅ 5

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 35分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 41分钟前 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 45分钟前 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 47分钟前 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 48分钟前 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 51分钟前 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 59分钟前 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 今天 ⋅ 0

vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、一般模式下复制粘贴剪切

VIM Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的...

蛋黄Yolks ⋅ 今天 ⋅ 0

springboot+mockito测试controller层遇到的问题

使用MockitoJUnitRunner测试的一个例子,原来报错无法找到bean, 类似的异常如下:createBeanError..... 原因:是因为@Runwith使用了SpringRunner,应该修改为MockitoJUnitRunner 代码如下: ...

writeademo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部