黑马程序员:IOS面试宝典之关于动画_黑马程序员面试技巧

2020-02-28 其他范文 下载本文

黑马程序员:IOS面试宝典之关于动画由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“黑马程序员面试技巧”。

关于动画

1.谈谈你对Core Graphic 绘图的了解? CoreGraphics也称为Quartz 2D 是UIKit下的主要绘图系统,频繁的用于绘制自定义视图。Core Graphics是高度集成于UIView和其他UIKit部分的。Core Graphics数据结构和函数可以通过前缀CG来识别。

视图可以通过子视图、图层或实现drawRect:方法来表现内容,如果说实现了drawRect:方法,那么最好就不要混用其他方法了,如图层和子视图。自定义绘图大部分是由UIKit或者Core Graphics来实现的。

2D绘图一般可以拆分成以下几个操作: 线条 , 路径 , 文本 , 图片 , 渐变 由于像素是依赖于目标的,所以2D绘图并不能操作单独的像素,我们可以从上下文(Context)读取它。

绘图就好比在画布上拿着画笔机械的进行画画,通过制定不同的参数来进行不同的绘制。

http://www.daodoc.com/articles/jIJzMf

http://blog.csdn.net/mangosnow/article/details/37054765

2.Core Animation(核心动画)? CoreAnimation也就是核心动画, 是一组非常强大的动画处理API, 可以使用少量的代码做出绚丽的效果, 是直接作用在CALayer上的, 并非UIView, 并且Core Animation的动画执行过程都是在后台操作, 不会阻塞主线程.所有动画都是作用在CALayer上的, 当把动画添加到Layer上, 是不直接修改它的属性, Core Animation维护了两个平行layer的层次结构, 模型层树可以看到Layer的状态, 表示层树则是动画正在表现的值的近似.Core Animation的使用步骤: 1> 使用它需要先添加QuartzCore.framework框架和引入主头文件(iOS7.0+ 不需要)2>.初始化一个CAAnimation对象,并设置一些动画相关属性

3>.通过调用CALayer的addAnimation:forKey:方法增加CAAnimation对象到CALayer中,这样就能开始执行动画了

4>.通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画

1.转场动画? CATransition-转场动画, 作为CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点.UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果.如下是转场动画的过渡效果:

使用UIView的动画函数, 实现转场动画 1> 单视图:

+(void)transitionWithView:(UIView*)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options

animations:(void(^)(void))animations completion:(void(^)(BOOL finished))completion;参数说明:

duration:动画的持续时间 view:需要进行转场动画的视图 options:转场动画的类型

animations:将改变视图属性的代码放在这个block中 completion:动画结束后,会自动调用这个block 2> 双视图: +(void)transitionFromView:(UIView*)fromView toView:(UIView*)toView

duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options finished))completion;参数说明:

duration:动画的持续时间 options:转场动画的类型

animations:将改变视图属性的代码放在这个block中 completion:动画结束后,会自动调用这个block

completion:(void

(^)(BOOL 2.一个动画怎么实现? 以转场动画为例: 1> 创建CATransition对象

CATransition *animation = [CATransition animation];2> 设置运动时间(即动画时间)animation.duration = DURATION;3> 设置运动type(类型)

animation.type = type;if(subtype!= nil){ 4> 设置子类(和type配合使用, 指定运动的方向)animation.subtype = subtype;} 5> 设置运动速度(动画的运动轨迹,用于变化起点和终点之间的插值计算,形象点说它决定了动画运行的节奏,比如是均匀变化(相同时间变化量相同)还是先快后慢,先慢后快还是先慢再快再慢)animation.timingFunction = UIViewAnimationOptionCurveEaseInOut;

6> 将动画添加到view的Layer层

[view.layer addAnimation:animation forKey:@“animation”];动画类型如下: typedef enum : NSUInteger { Fade = 1, //淡入淡出 Push, //推挤 Reveal, //揭开 MoveIn, //覆盖 Cube, //立方体 SuckEffect, //吮吸 OglFlip, //翻转 RippleEffect, //波纹

PageCurl, //翻页 PageUnCurl, //反翻页 CameraIrisHollowOpen, //开镜头 CameraIrisHollowClose, //关镜头 CurlDown, //下翻页 CurlUp, //上翻页 FlipFromLeft, //左翻转 FlipFromRight, //右翻转 } AnimationType;3.CADisplayLink CADisplayLink是一种以屏幕刷新频率触发的时钟机制,每秒钟执行大约60次左右

CADisplayLink是一个计时器,可以使绘图代码与视图的刷新频率保持同步,而NSTimer无法确保计时器实际被触发的准确时间 使用方法:

定义CADisplayLink并制定触发调用方法 将显示链接添加到主运行循环队列

黑马程序员:IOS面试宝典之c语言

黑马程序员:IOS面试宝典之c语言C语言语法1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量......

黑马程序员:IOS面试宝典之OC语言

OC语言(★★)有人可能会问对于我们学iOS的同学来讲,面试还会问Objective-C基础吗?答案是会的,但是不会太多,因此我给了两颗星的重要程度。一般笔试的时候出现Objective-C基础题的......

黑马程序员:IOS面试宝典之第三方框架

黑马程序员:IOS面试宝典之第三方框架面试常问,你经常使用一些第三方库吗?比如AFNetworking SDWebimage JsonModel等,有没有去了解过里面的实现原理? 第三方框架1.关于cocoaPo......

黑马程序员:IOS面试宝典数据存储

数据存储(★★)1、IOS中常用的数据存储方式有哪些?答:1.数据存储有四种方案,NSUserDefault,KeyChain,File,DB.2.其中File有三种方式:plist,Archiver,Stream 3.DB包括core Data和FM......

黑马程序员:IOS面试宝典之UITableView与UICollectionView

黑马程序员:IOS面试宝典之UITableView与UICollectionView 1.UITableView的重用机制?(或者如何在一个view上显示多个tableView,tableView要求不同的数据源以及不同的样式 (要......

《黑马程序员:IOS面试宝典之关于动画.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
黑马程序员:IOS面试宝典之关于动画
点击下载文档
相关专题 黑马程序员面试技巧 黑马 程序员 宝典 黑马程序员面试技巧 黑马 程序员 宝典
[其他范文]相关推荐
[其他范文]热门文章
下载全文