CoreAnimation动画结构变量

翻译 2016年06月02日 12:01:33

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。
如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!

结构实例在swift中是第一类的居民.事实上,它与类实例变量之间只有很小的区别.

不管怎样,Core Animation是建立在C语言上的Objective-C库,这意味着结构以非常不同的方式被处理.Objective-C的API偏爱处理对象,所以结构需要一些特殊的处理方法.

这就是为什么动画一个层的属性类似于颜色或者一个数值相对容易,但是动画一个结构属性比如CGPoint就不那么容易了.

这里写图片描述

对于一个CALayer来说,它拥有很多可以动画的结构属性,包括位置的类型CGPoint,变换的类型CATransform3D,以及边围的类型CGRect.为了帮助管理它们,Cocoa包含了一个NSValue类,用来”封装(boxes in)”或者”包装(wraps)”一个结构到一个对象中去.

NSValue有很多方便的初始化器,你可以对每一个需要的结构使用,包括下面一些:

init(CGPoint point: CGPoint) 
init(CGSize size: CGSize) 
init(CGRect rect: CGRect) 
init(CATransform3D t: CATransform3D)

你怎么使用这些初始化器去封装你的结构值呢?这里有一个简单的位置动画使用CGPoint,如下所示:

let move = CABasicAnimation(keyPath: "position")
move.duration = 1.0
move.fromValue = NSValue(CGPoint: CGPoint(x: 100.0, y: 100.0)) move.toValue = NSValue(CGPoint: CGPoint(x: 200.0, y: 200.0))

如果你直接将一个CGPoint赋值到fromValue或toValue,将会得到一个错误,提示你需要使用NSValue代替.你必须将CGPoint封装到一个NSValue然后再赋值到fromValue和toValue中去.

对于关键帧动画来说这也是相同的:如果你试图赋值一个CGPoint的数组到你的动画中去,同样会出错!你必须使用一个封装CGPoint的NSValue数组来代替.

iOS-CoreAnimation动画集

  • 2016年10月13日 17:03
  • 13.24MB
  • 下载

CoreAnimation动画集

  • 2016年10月12日 09:59
  • 13.23MB
  • 下载

iOS海哥开发笔记 (海哥原创,CoreAnimation核心动画介绍)

一。基本动画,每次执行一个动画 直接上一些代码吧,注释都有 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event...
  • horisea
  • horisea
  • 2016年03月08日 10:54
  • 283

核心动画 CoreAnimation

原文地址:http://www.cnblogs.com/pengyingh/articles/2396032.html 转载保存,以后用到的话再看看!  第一章 核心动画概念 ...
  • mqlsq
  • mqlsq
  • 2012年05月03日 17:24
  • 495

关于coreAnimation 核心动画的学习笔记(5)

3.5 图层的内容 图层的内容提供,是指通过一种方法来制定CALayer 实例的内容: 其中有一下三种方式来提供CAlayer的内容  (1)使用包含图片内容的 CGImageRef 来显式的设置图层...

CoreAnimation加载动画

CoreAnimation加载动画功能,如我们平时上网页在加载时出现的三个圆在加载的动画效果。该功能用到的主要方法有:NSTimer定时器、对视图进行设置平移和缩放、创建UIBezierPath基于矢...
  • Eliane_
  • Eliane_
  • 2016年07月19日 08:41
  • 123

iOS CoreAnimation 逐帧动画 CADisplayLink

本文参考:http://www.cnblogs.com/kenshincui/p/3972100.html#autoid-3-0-0总结的: 逐帧动画 CADisplayLink 动画效果: ...

iOS CoreAnimation动画系列教程(二):CAKeyFrameAnimation

在上一篇专题中我们提到,CAAnimation可分为以下四种:1.CABasicAnimation 通过设定起始点,终点,时间,动画会沿着你这设定点进行移动。可以看做特殊的CAKeyFrameAnim...

iOS CoreAnimation-粒子动画

一、粒子发射器iOS中的粒子效果有两部分组成,一部分为发射器,设置例子发射的宏观属性,另一部分是粒子单元,用于设置相应的粒子属性。粒子发射器是基于Layer层:CAEmitterLayer。其中常用的...
  • yab4534
  • yab4534
  • 2016年08月22日 15:00
  • 967

iOS CoreAnimation动画系列教程

1.CABasicAnimation 通过设定起始点,终点,时间,动画会沿着你这设定点进行移动。可以看做特殊的CAKeyFrameAnimation 2.CAKeyframeAnimation ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CoreAnimation动画结构变量
举报原因:
原因补充:

(最多只允许输入30个字)