iOS 进阶 第二十一天(0531)

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)

时间: 2024-08-02 06:58:54

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

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

一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大头针类,我自定义的为MyAnnotation 大头针: 在iOS开发中经常会标记某个位置,需要使用地图标注,也就是大家俗称的“大头针”.只要一个NSObject类实现MKAnnotation协议就可以作为一个大头针,通常会重写协议中coordinate(标记位置).title(标题).subtitl

iOS 进阶 第一天(0323)

0323 Storyboard连线错误 如下图: 不允许直接修改对象的结构体属性成员,但允许直接整体修改对象的结构体属性 如下图: 打印一个控件对象的frame 如下图: 如果一个控件无论怎么改变它的大小都不起作用,那么就要想到从iOS6开始出现的AutoLayout.这个面试必面 iOS 进阶 第一天(0323)

iOS 进阶 第十五天(0417)

0417 创建UICollectionViewCell的Xib方法如下图 枚举定义导航跳转方式 js跳转到网页指定锚点 如下图所示: iOS 进阶 第十五天(0417)

iOS 进阶 第二天(0324)

0324 创建transform transform 是形变属性. 如下图: 如果按照上面的方法来创建的话是这样解释:是相对初始状态来说的,不会在变化后的基础上进行形变.如果要持续变化就要自己去不断改变要变化的tx或者ty的值 如果要在当前的transform上直接进行不断改变就要按照下面的写法,如下图所示: 当然旋转也是一样,如下图: 当然缩放也是一样,如下图: plist 从本地程序包读取文件 懒加载数据 如下图: bundle 如下图: UIImageView的序列帧动画(每隔一段时间换一

iOS 进阶 第九天(0408)

0408 makekeyAndVisible解释 一个程序可以有多个Window,但只有一个窗口能够成为主窗口.如图中所示,此时的window2是主窗口.主窗口用处大了.从iOS7开始无论是主窗口还是次窗口,都可以交互,比如文本框输入文字.但在iOS6及其之前的版本,非KeyWindow(非主窗口)是无法交互的,即无法向文本框中输入文字 如果发现一个文本框不能输入文字,那就就要想到这个文本框所在的窗口是不是主窗口 iOS主窗口和非主窗口的表现: 获取当前程序的主窗口 一些总结: 键盘也是在一个窗

iOS 进阶 第六天(0402)

0402 通知和代理的区别 代理是一对一的,只能是调用实现了协议里的方法,对象作为实现了该方法才能执行方法 通知是多对多,它是通过通知中心分发 通知要及时移除,如果不及时移除可能会收到多次通知,就好像C#中的事件注册多次一样.也可能(通知中心不会保留被通知的对象)是被通知的对象已经销毁,但通知中心仍保留这个通知继续通知造成野指针错误,应用可能会崩溃. 同时的添加和移除很容易和KVO混在一起,只要注意addObserver和removeObserver的时候不选择forKeyPath就可以了. 下

iOS 进阶 第十一天(0411)

0411 UItaBbar的结构 每一个数组都有一个方法,那就是下面这个,如下图所示: 如果想看系统控件是怎么构成的,那么就采用遍历其子控件的方式来做,如上一图中所示 在iOS7及其以后的系统里,控制器ViewController的View都是通栏的,从头到脚.但在iOS6及其以前的系统里控制器ViewContorller的View的高度要去掉被遮盖的部分. strong和weak 对象销毁准则: 非ARC:只要对象的引用计数器为0,系统自动会销毁此对象 ARC:只要没有任何强指针指向此对象,系

iOS 进阶 第三天(0326)

0326 Xib:描述软件界面,轻量级,一般用来描述局部界面 Xib的获取,如下图所示: xib在我们开发的时候叫xib,但如果运行在我们手机里会生成nib.所以xib和nib两种方法来访问xib iOS 进阶 第三天(0326)

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

本文转载至 http://blog.csdn.net/xunyn/article/details/14525243 ios面试题多核并发应用 iOS面试题系列: iOS如何面试 iOS面试题(一) iOS基础面试题(二) iOS基础面试题(三) iOS基础面试题(四) iOS进阶面试题----Block部分 1 多线程是什么 多线程是个复杂的概念,按字面意思是同步完成多项任务,提高了资源的使用效率,从硬件.操作系统.应用软件不同的角度去看,多线程被赋予不同的内涵,对于硬件,现在市面上多数的CPU