`
janedoneway
  • 浏览: 580636 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iPhoto的删除动画

 
阅读更多

From: http://z251257144.iteye.com/blog/1439928

 

 

iPhoto 中想删除某张照片时,点击删除键,就能看到照片被回收到垃圾箱的动画。

今天就来模拟一下这个动画(据说有个私有API可以实现,不过私有的嘛,忽略之)。

首先仔细观察下这个动画,包含了位置,大小还有可见三个主要动画。

为了清楚的说明,先上核心代码:

 

 

C代码   收藏代码
  1. UIBezierPath *movePath = [UIBezierPath bezierPath];  
  2. [movePath moveToPoint:fromPoint];  
  3.    
  4. [movePath addQuadCurveToPoint:toPoint  
  5.                               controlPoint:CGPointMake(toPoint.x,fromPoint.y)];  
  6.    
  7.                
  8.              CAKeyframeAnimation *moveAnim = [CAKeyframeAnimation animationWithKeyPath:@"position"];  
  9.              moveAnim.path = movePath.CGPath;  
  10.              moveAnim.removedOnCompletion = YES;  
  11.                
  12.              CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"];  
  13.              scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];  
  14.              scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];  
  15.              scaleAnim.removedOnCompletion = YES;  
  16.                
  17.              CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"alpha"];  
  18.              opacityAnim.fromValue = [NSNumber numberWithFloat:1.0];  
  19.              opacityAnim.toValue = [NSNumber numberWithFloat:0.1];  
  20.              opacityAnim.removedOnCompletion = YES;  
  21.                
  22.              CAAnimationGroup *animGroup = [CAAnimationGroup animation];  
  23.              animGroup.animations = [NSArray arrayWithObjects:moveAnim, scaleAnim,opacityAnim, nil];  
  24.              animGroup.duration = 1;  
  25.              [imageView.layer addAnimation:animGroup forKey:nil];  

 

 

UIBezierPath是用来创建各种曲线的类,这个类很强大,各种你能想到的都可以用它来完成。

这里我们建立的二次曲线实际上就是从照片的中心点位置到垃圾箱终点的一条曲线。

至于函数中controlPoint的选取,自己查阅API吧,这里就不多说


接着我们建立了一个CAKeyframeAnimation的动画,这个主要用于实现动画的轨迹变化,我们将动画的path值设为之前定义的曲线值。

这样动画就会按我们设定的轨迹移动了。

接下来是大小变化的动画,设定了最初和最终的画面大小。CATransform3DMakeScale是用于生成变换矩阵的东东,对于二维的,z值始终为1.

紧接着是生成透明度的动画,很好理解。


由于我们用到了三种动画,所以需要用CAAnimationGroup,这样一次性的使用它们。


这样我们就完成了这样的动画,试试吧。

 

 

 

分享到:
评论

相关推荐

    [iOS]iPhoto的删除动画(转)

    在实现iPhoto删除动画时,主要涉及到CALayer对象的属性变化以及CAAnimation的使用。 1. **理解CALayer**:CALayer是Core Animation的基础,代表屏幕上的一个可视化元素。你可以设置其frame、bounds、transform等...

    [图片动画]iPhoto多用户相册系统 v2.2_iphoto.zip源码ASP.NET网站源码打包下载

    [图片动画]iPhoto多用户相册系统 v2.2_iphoto.zip源码ASP.NET网站源码打包下载[图片动画]iPhoto多用户相册系统 v2.2_iphoto.zip源码ASP.NET网站源码打包下载[图片动画]iPhoto多用户相册系统 v2.2_iphoto.zip源码ASP...

    iphoto 11,入门教程

    iPhoto是苹果公司在MacOS X系统中推出的图片管理软件,它为Mac用户提供了一个便捷的图片管理和编辑解决方案。iPhoto的主要功能包括导入和组织图片、编辑和增强图片质量、创建和分享相册以及制作幻灯片和印刷品等。该...

    iphoto多用户册系统

    安装后请确认/setup/文件夹删除 ========================================================================== 交流论坛: http://www.iphoto.net.cn/bbs.aspx ==============================================...

    Mac iphoto 使用说明

    ### Mac iPhoto 使用说明 #### 一、简介 iPhoto 是苹果公司为 Mac 用户提供的一款照片管理和编辑软件。它能够帮助用户轻松管理大量的照片,并提供了基本的照片编辑功能。本篇文章将详细介绍 iPhoto 的主要功能及...

    [图片动画]iPhoto多用户相册系统 v2.2_iphoto(ASP.NET源码).rar

    作为“图片动画”系统,iPhoto可能内置了各种图片展示特效,如滑动、缩放、旋转等。这些效果可能通过JavaScript库如jQuery或现代浏览器的CSS3动画来实现,提升用户体验。 5. 数据库设计与存储 系统背后的数据库设计...

    lightroom输出到iphoto的插件

    而“lightroom输出到iphoto的插件”则是针对苹果用户设计的一款工具,目的是帮助用户将Lightroom中的照片无缝导入到iPhoto中。 iPhoto是苹果电脑上的一个经典照片应用程序,它允许用户存储、组织、编辑和共享他们的...

    ASP.NET-[图片动画]iPhoto多用户相册系统v2.2.zip

    这个资源,"ASP.NET-[图片动画]iPhoto多用户相册系统v2.2.zip",显然是一款基于ASP.NET平台的多用户相册系统,版本为2.2,特别强调了对图片和动画的支持。 在ASP.NET中,开发人员可以利用C#或VB.NET等编程语言进行...

    ASP,NET源码——[图片动画]iPhoto多用户相册系统.zip

    本系统,即 iPhoto 多用户相册系统,是 ASP.NET 技术的一个具体应用实例,它允许多个用户创建并管理自己的在线相册,展示个人的图片和动画。 在 ASP.NET 源码中,我们可以找到以下几个关键知识点: 1. **用户认证...

    ASP.NET源码——[图片动画]iPhoto多用户相册系统.zip

    【ASP.NET源码——[图片动画]iPhoto多用户相册系统】 ASP.NET是一个由微软开发的开源Web应用程序框架,用于构建动态网站、web应用程序和服务。这个“[图片动画]iPhoto多用户相册系统”是基于ASP.NET的源码实现,它...

    iPhoto相册系统 v2.1.NET

    《iPhoto相册系统 v2.1:打造个性化的网络照片管理平台》 iPhoto相册系统 v2.1是一款专为用户设计的高效、易用的网络相册管理软件,它提供了丰富的功能,旨在帮助用户更好地组织、分享和保护个人照片。这款系统的...

    iPhoto多用户相册系统 2.2

    iPhoto多用户相册系统2.2是一款专为多个用户设计的照片管理解决方案,它提供了高效、安全且便捷的方式来共享和管理个人及集体的数码照片。这个系统的核心特性在于其多用户支持,允许不同用户拥有独立的相册,同时...

    ios iphoto图片放大完整demo

    在iOS开发中,`iPhoto`的图片放大与缩小功能是一项常见的用户交互设计,它提升了用户体验,让用户可以更细致地查看图像。这个“ios iphoto图片放大完整demo”是针对iOS 5的一个示例项目,它展示了如何实现类似于`...

    iPhoto我的影像 v1.0.rar

    - **编辑和调整**:应用各种编辑效果,如滤镜、过渡和动画,使影像MTV更具吸引力。 - **分享与发布**:完成编辑后,用户可以选择直接上传到网络平台,或者导出为视频文件,通过邮件、社交媒体等方式分享。 4. **...

    Wordpress瀑布流主题 Theme iPhoto_3.0.6 牧风最新版2012.6月

    国人主题, iPhoto_3.0.6 主题简介:一款国人制作的有类似huaban.com瀑布流效果的图片主题。 主题功能: 1.SEO、网站流量统计、底部版权均可后台设置; 2.主题集成了分页功能,如果个人有需求可以使用相关插件...

    iPhoto我的影像 v1.0

    iPhoto我的影像是一款专为娱乐分享而设计的影像工具,它以其独特的功能和易用性,让用户能够简单快捷地将珍贵的照片与动听的音乐融合,创造出个性化的影像MTV,从而在互联网上分享生活的点滴和精彩瞬间。这款软件的...

    Apple Training Series - iPhoto '11.pdf

    ### Apple Training Series - iPhoto '11 知识点概览 #### 一、书籍基本信息与版权信息 - **书名**:Apple Training Series - iPhoto '11 - **作者**:Dion Scoppettuolo - **出版年份**:2011 年 - **出版社**:...

    iPhoto多用户相册系统 v2.2_iphoto.zip

    【标题】"iPhoto多用户相册系统 v2.2_iphoto.zip" 提供的是一款基于互联网的多用户相册管理系统,版本为2.2。这个系统可能旨在让用户能够在线存储、分享和管理自己的照片,同时支持多个用户账户,满足了个人或团队对...

    建立智能iPhoto相册小技巧.docx

    标题中的“建立智能iPhoto相册小技巧”指的是在苹果的iPhoto软件中创建智能相册的方法,这是一种高效管理和查找照片的方式。iPhoto是苹果公司为Mac OS X操作系统设计的一款图像管理应用程序,允许用户整理、编辑和...

    iphoto-library:用于从iPhoto '11中读取数据的命令行工具。 用Python 3.x编写

    《使用Python 3.x开发的iphoto-library:深入探索iPhoto '11数据解析》 在数字摄影的时代,照片管理软件如iPhoto '11在苹果用户中扮演着至关重要的角色。然而,对于那些希望通过编程方式访问和操作iPhoto数据库的...

Global site tag (gtag.js) - Google Analytics