0531 - Autolayout 不仅可以做屏幕适配还可以做系统适配

uidynamic 做物理动画.能做的效果如下图:


Autolayout

Autolayout 是一种“自动布局”技术,专门用来布局UI界面的.有了Autolayout,请忘记frame

Autolayout 要比 Autoresizing 强大,两者水火不相容

Autolayout的2个核心概念

  • 参照
  • 约束

使用代码实现Autolayout - VFL(Visual Format Language)

实现思路如下:

NSLayoutConstraint的解释:

将一个UIview添加到父控件view上,使用NSLayoutConstraint参照约束实现:


为了简化Autolayout苹果公司推出了VFL语言

VFL示例1:

运行结果:

注意:里面的metrics是用来站位,就如[NSString StringWithFormat(@"%d", 10)]

如下图所示:

VFL示例2:

运行结果:


Autolayout对UILabel的影响,如下图:


AutoLayout做动画

注意:layoutIfNeeded方法是用来Autolayout做动画使用的.setNeedsDisplay是Quartz2D刷帧重绘DrawInrect:往界面view的layer图层上绘制东西时用的


iOS 进阶 第二十一天(0531)的更多相关文章

  1. iOS进阶_地图上定位的标志——大头针

    一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大 ...

  2. iOS进阶指南试读之UI篇

    iOS进阶指南试读之UI篇 UI篇 UI是一个iOS开发工程师的基本功.怎么说?UI本质上就是你调用苹果提供给你的API来完成设计师的设计.所以,想提升UI的功力也很简单,没事就看看UIKit里的各个 ...

  3. iOS进阶读物

    不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了, ...

  4. iOS进阶推荐的书目

    <Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法>([英]Matt Galloway) 很多面试题有涉及 <IOS数据库应用高级编 ...

  5. iOS进阶路线以及进阶书籍

    第一,熟悉ARC机制:首先要了解ARC的前世今生.假设了解不清楚会导致两种可能,1,一个对象的引用莫名奇异为空.或失效了.这个一般都能在开发阶段及时发现,由于会导致应用异常.2.导致内存溢出:不了解A ...

  6. iOS进阶之多线程

    多线程 注意:iOS关于UI的刷新和添加必须在主线程中操作! pthread的创建方法: pthread_t pthread; //第一个参数 线程指针 //第二个参数 线程的一些属性 //第三个参数 ...

  7. iOS进阶_三方使用步骤

    一.配置环境(:后为在终端输入的命令) 打开终端 查看自己电脑的Ruby环境:gem sources -l 如果环境已经是淘宝镜像了,此时不需要再进行环境的修改. 如果不是,发送gem sources ...

  8. iOS进阶面试题----Block部分

    1 什么是block 对于闭包 (block),有很多定义,其中闭包就是能够读取其它函数内部变量的函数,这个定义即接近本质又较好理解.对于刚接触Block的同学,会觉得有些绕, 因为我们习惯写这样的程 ...

  9. iOS进阶面试题----多线程

    1 多线程是什么 多线程是个复杂的概念,按字面意思是同步完成多 项任务,提高了资源的使用效率,从硬件.操作系统.应用软件不同的角度去看,多线程被赋予不同的内涵,对于硬件,现在市面上多数的CPU都是多核 ...

随机推荐

  1. ◆ 火狐浏览器去除JS方法:

    ◆ 火狐浏览器去除JS方法: 在火狐地址栏输入about:config   回车 在搜索地址栏中输入javascript.enabled 右键 当一行的中的,值由false变成trun,就OK了 . 

  2. UnityVS 2013的使用

    如果已安装旧版,先卸载,然后在安装新版本: 安装完毕后,打开Unity,在Build Settings中设置: Import the Visual Studio Tools Unity package ...

  3. Hbase rest方式获取指定key范围内的值

    代码如下: <?php class Monitor_Hbase{ private $rest_host = "http://10.99.90.39:8130/";//rest ...

  4. 浅谈JavaScript的事件响应

    原文出处: Christian Heilmann   译文出处:Chajn Science 每当猴子们问我JavaScript和DOM里啥东西最牛逼时,我都会一巴掌打回去:卧槽还用问么当然是事件响应了 ...

  5. 用绝对路径引用JS、CSS

    项目中,最好使用绝对路径引用JS和CSS文件,详情如下: 1.vm文件中: <link rel="stylesheet" href="$!{request.cont ...

  6. Nginx 日志按天分割

    #nginx日志切割脚本 #!/bin/bash #设置日志文件存放目录 logs_path="/home/www.xxx.com/wwwlogs/" #设置pid文件 pid_p ...

  7. banner淡出效果

    <div class="banner"> <div class="ban"></div> <ul class=&quo ...

  8. CSS3中颜色线性渐变实战

    css3线性渐变可以设置3个参数值:方向.起始颜色.结束颜色.最简单的模式只需要定义起始颜色和结束颜色,起点.终点和方向默认自元素的顶部到底部.下面举例说明: CSS Code复制内容到剪贴板 .te ...

  9. 【转】Javascript 严格模式详解

    ref: http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 一.概述 除了正常运行模式,ECMAscript 5添加 ...

  10. C# MongoDB--时区问题(差了8小时)

    原因:MongoDB中存储的时间是标准时间UTC +0:00C#的驱动支持一个特性,将实体的时间属性上添加上这个特性并指时区就可以了.例如:[BsonDateTimeOptions(Kind = Da ...