- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Cocoachina教学:Core_Animation入门》.doc
Cocoachina教学:Core Animation入门
/DaemonYang/archive/2009/05/25/4214157.aspx
今天,Cocoachina会开始一个Core Animation的入门教学,和大家共同学习Core Animation的使用。本站介绍过不少Core Animation的文章,这篇文章是一个入门教学,从头帮助你了解Core Animation以及如何入门。
Core Animation是苹果在Leopard中加入的新API,主要用于利用显卡硬件制作动态的用户界面。同时,在iPhone SDK中也支持这种API。在Leopard和iPhone中,你会看到苹果大量使用这种很酷的效果,比如iTunes/iPhone的 CoverFlow效果:
?
Core Animation的好处
Core Animation的最大好处是可以帮助Mac或者iPhone的开发者减少代码量。因为如果你想用Core Image或者Open GL实现界面的动画特效,其实也是可以的,主要是非常麻烦。而用Core Animation可以极大简化开发难度和减少代码量。
如果你想用Core Animation建立你自己独特的用户界面,首先强烈建议你有一点艺术感,单单会使用Core Animation不能让你成为艺术家。另外,你最好会用一点Adobe Photoshop或者Adobe Flash,在实现效果之前,先动手画一画,心里大致有个感觉。
本文不会涉及到太深的技术或是数学算法层面,作者本人在这方面非常不精通。本文只是简单地把你从苹果晦涩的技术文档中解救出来,看过这篇文章后你应该可以开始直接在程序里使用Core Animation了。
需要了解哪些
阅读本文之前,最好你已经有一点Cocoa开发的基础,本文不会详述细节。首先,你需要了解Objective-C,如果不了解,可以先看一下本站的新手文章:
另外你还要了解一点Objective-C 2.0的属性说得是什么。同时,你需要了解如何使用XCode,这是比较基本的。
开始
要在Cocoa程序中使用Core Animation,首先要在程序中引用Quartz.framework,另外在.h文件中需要包含
#import Quartz/Quartz.h
?
这样就可以使用了。
?
Core Animation绘图的基础是“层”,叫做CALayer。你可以在View中设置层,层中可以放置更多的层。每个层都可以设定单独的动作,还可以给上 一级的层设置动作,下一级的层就可以跟着上一层进行动作。iPhone官方SDK同样支持CALayer,而在底层的Toolchain中,你需要用的类 叫做LKLayer(Layer Kit),其实是一样的。
?
Core Animation动画的基础主要是CAAnimation和CATransition,CAAnimation主要用于设定层的动作,比如放大缩小旋转等等,而CATransition主要用于比如设置渐变、翻页、切换等一些比较特殊的特效。
?
Core Animation的动画是基于View的,最简单的用法是使用View的animator,修改一下View对象的属性,但是消息发给对象的animator即可。比如从前你可能这么写:
[我的一个view set数值:xx];
那么你现在如果这么写:
[[我的一个view animator] set数值:xx],它就会动。
?
想在View中打开Core Animation支持,你可以用以下方法实现:
[我的view setWantsLayer:YES];
或是
我的view.?setWantsLayer=?YES; 这是Objective C 2.0的写法
再或者在Interface Builder中打开这个选项:
?
创建支持Core Animation的View
?
接下来用一个简单的例子介绍一下如何做一个基于层的View用来支持Core Animation。
?
首先在Interface Builder里拽一个Custom View,拽进窗口,改名,随便叫什么,比如我改为TestView:
?
在菜单中选择Write Class…,保存到项目中。你就可以在这个View里面做点能动的东西了。
?
在层中画图
?
你 可以直接在View里面使用drawLayer:方法画层。不过一般来说,我们都会在层中使用一些图片。要给CALayer设置图片,你只需使用 xxlayer.contents指定contents的属性为一个图片就可以在层上显示图片。只是CALayer需要的图片类型是CGImageRef,而我们比较容易获取的图片类型是NSImage。你可以使用下面的函数将NSImage转换为CG
您可能关注的文档
- 《Balanced-to-Unbalanced Bandpass Filters and the Antenna Application》.pdf
- 《Basic concepts in Q membrane chromatography for large-scale antibody production》.pdf
- 《Basics of Air cooled Heat Exchangers rev1_good_to_read》.pdf
- 《Basics of XRD》.ppt
- 《Before & After - 0653 - Site Of Unusual Clarity》.pdf
- 《Behavior of air-entrained concrete after freeze-thaw cycles》.pdf
- 《behavioral change indoor air pollution and child respiratory health in developing countries》.pdf
- 《Benedict Anderson's Derivative Discourse》.pdf
- 《berklee_pro_tools_mixing&M》.pdf
- 《BH_US13-Trend-The-SCADA-That-Didnt-Cry-Wolf-Whos-Really-Attacking-Your-ICS-Devices-Slides》.pdf
文档评论(0)