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

本文目录 一、Core Animation简介二、Core Animation的使用步骤三、CAAnimation四、CAPropertyAnimation 回到顶部 ...

动画2-CoreAnimation核心动画

  • 2015-10-30 23:42
  • 3.03MB
  • 下载

iOS学习笔记09-核心动画CoreAnimation

一、CALayerCALayer包含在QuartzCore框架中,具有跨平台性,在iOS中使用Core Animation开发动画的本质是 将CALayer内容转化为位图从而供硬件操作 。常用属性: ...

CoreAnimation 核心动画 简称CA

-、动画块fram bounds center alpha Transition 过渡 transform我们之前使用过的UIView动画 其实本质上也是 CoreAnimation实现的 只...

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

第二章 核心动画渲染框架 可能有人会很好奇CoreAnimation是如何渲染动画,动画是如何生成的。 在core aniamtion和cocoa view之间有很大的相似之处,他们之间最大的概念上的...

iOS CoreAnimation 基础动画CABasicAnimation

本文参考:http://www.cnblogs.com/kenshincui/p/3972100.html#autoid-3-0-0总结的: Core Animation  *       iOS ...

核心动画 CoreAnimation、CALayer详解

核心动画 CoreAnimation    第一章 核心动画概念 核心动画,开发人员可以为他们的应用创建动态用户界面,而无需使用低级别的图形 API,如 OpenGL 来获取高效的动...

iOS动画-CoreAnimation

二、 CoreAnimation——进行比较绚丽的动画,需要导入QuartzCore 、CoreGraphics这两个framework 核心动画类有以下分类: ñ 提供显示内容的图层类。 ñ 动画...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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