CoreAnimation动画结构变量
来源:互联网 发布:cocostudio for mac 编辑:程序博客网 时间:2024/05/17 04:26
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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.0move.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数组来代替.
- CoreAnimation动画结构变量
- CoreAnimation动画
- CoreAnimation动画
- 核心动画 CoreAnimation
- CoreAnimation 细说动画(一)
- 核心动画 CoreAnimation
- 核心动画 CoreAnimation
- 核心动画 CoreAnimation
- 核心动画 CoreAnimation
- ios coreAnimation 动画
- iOS动画-CoreAnimation
- IOS_核心动画 CoreAnimation
- 基本动画CoreAnimation
- 核心动画 CoreAnimation
- CoreAnimation核心动画
- CoreAnimation 动画总结
- CoreAnimation动画实现方式
- CoreAnimation 核心动画
- Python学习笔记 —— 基础语法
- AndroidStudio 安装Material design icon插件
- mybaties 转义字符
- Java Persistence with MyBatis 3(中文版) 第三章 使用XML配置SQL映射器
- 电信 错误
- CoreAnimation动画结构变量
- swift2.0 学习笔记Thirteen
- Android事件分发机制
- [从头学数学] 第234节 微分方程
- 《Python基础教程》学习笔记 Chp8 异常
- 柴俊理金:API利空原油重挫,避险助力黄金回升
- 织梦只调用上一页下一页链接
- (java) Integer Break解题报告
- android studio信鸽推送10004错误