iPhoto 中想删除某张照片时,点击删除键,就能看到照片被回收到垃圾箱的动画。
今天就来模拟一下这个动画(据说有个私有API可以实现,不过私有的嘛,忽略之)。
首先仔细观察下这个动画,包含了位置,大小还有可见三个主要动画。
为了清楚的说明,先上核心代码:
UIBezierPath *movePath = [UIBezierPath bezierPath];
[movePath moveToPoint:fromPoint];
[movePath addQuadCurveToPoint:toPoint
controlPoint:CGPointMake(toPoint.x,fromPoint.y)];
CAKeyframeAnimation *moveAnim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
moveAnim.path = movePath.CGPath;
moveAnim.removedOnCompletion = YES;
CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"];
scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];
scaleAnim.removedOnCompletion = YES;
CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"alpha"];
opacityAnim.fromValue = [NSNumber numberWithFloat:1.0];
opacityAnim.toValue = [NSNumber numberWithFloat:0.1];
opacityAnim.removedOnCompletion = YES;
CAAnimationGroup *animGroup = [CAAnimationGroup animation];
animGroup.animations = [NSArray arrayWithObjects:moveAnim, scaleAnim,opacityAnim, nil];
animGroup.duration = 1;
[imageView.layer addAnimation:animGroup forKey:nil];
UIBezierPath是用来创建各种曲线的类,这个类很强大,各种你能想到的都可以用它来完成。
这里我们建立的二次曲线实际上就是从照片的中心点位置到垃圾箱终点的一条曲线。
至于函数中controlPoint的选取,自己查阅API吧,这里就不多说
接着我们建立了一个CAKeyframeAnimation的动画,这个主要用于实现动画的轨迹变化,我们将动画的path值设为之前定义的曲线值。
这样动画就会按我们设定的轨迹移动了。
接下来是大小变化的动画,设定了最初和最终的画面大小。CATransform3DMakeScale是用于生成变换矩阵的东东,对于二维的,z值始终为1.
紧接着是生成透明度的动画,很好理解。
由于我们用到了三种动画,所以需要用CAAnimationGroup,这样一次性的使用它们。
这样我们就完成了这样的动画,试试吧。
原文:javascript:mctmp(0);
分享到:
相关推荐
在iOS开发中,`iPhoto`的图片放大与缩小功能是一项常见的用户交互设计,它提升了用户体验,让用户可以更细致地查看图像。这个“ios iphoto图片放大完整demo”是针对iOS 5的一个示例项目,它展示了如何实现类似于`...
[图片动画]iPhoto多用户相册系统 v2.2_iphoto.zip源码ASP.NET网站源码打包下载[图片动画]iPhoto多用户相册系统 v2.2_iphoto.zip源码ASP.NET网站源码打包下载[图片动画]iPhoto多用户相册系统 v2.2_iphoto.zip源码ASP...
3. **自定义转场动画**:对于更复杂的效果,可能需要实现自定义的UIViewControllerAnimatedTransitioning协议(iOS)或使用Transition API(Android),以便完全控制过渡过程。 4. **图像缓存**:为了确保平滑的...
- 通过 MobileMe 服务(现已停用)可以实现 Mac 和 iOS 设备之间的照片同步。 - 现代版本可能通过 iCloud 实现相同的功能。 2. **与 iLife 套件集成**: - iPhoto 与 iMovie、iDVD 等应用无缝集成,可以将照片...
iPhoto是苹果公司在MacOS X系统中推出的图片管理软件,它为Mac用户提供了一个便捷的图片管理和编辑解决方案。iPhoto的主要功能包括导入和组织图片、编辑和增强图片质量、创建和分享相册以及制作幻灯片和印刷品等。该...
安装后请确认/setup/文件夹删除 ========================================================================== 交流论坛: http://www.iphoto.net.cn/bbs.aspx ==============================================...
作为“图片动画”系统,iPhoto可能内置了各种图片展示特效,如滑动、缩放、旋转等。这些效果可能通过JavaScript库如jQuery或现代浏览器的CSS3动画来实现,提升用户体验。 5. 数据库设计与存储 系统背后的数据库设计...
而“lightroom输出到iphoto的插件”则是针对苹果用户设计的一款工具,目的是帮助用户将Lightroom中的照片无缝导入到iPhoto中。 iPhoto是苹果电脑上的一个经典照片应用程序,它允许用户存储、组织、编辑和共享他们的...
这个资源,"ASP.NET-[图片动画]iPhoto多用户相册系统v2.2.zip",显然是一款基于ASP.NET平台的多用户相册系统,版本为2.2,特别强调了对图片和动画的支持。 在ASP.NET中,开发人员可以利用C#或VB.NET等编程语言进行...
【ASP.NET源码——[图片动画]iPhoto多用户相册系统】 ASP.NET是一个由微软开发的开源Web应用程序框架,用于构建动态网站、web应用程序和服务。这个“[图片动画]iPhoto多用户相册系统”是基于ASP.NET的源码实现,它...
本系统,即 iPhoto 多用户相册系统,是 ASP.NET 技术的一个具体应用实例,它允许多个用户创建并管理自己的在线相册,展示个人的图片和动画。 在 ASP.NET 源码中,我们可以找到以下几个关键知识点: 1. **用户认证...
iPhoto是我的影像是一款专为娱乐分享设计的影像处理工具,主要功能是帮助用户将个人照片与音乐融合,创作出富有动态感的影像MTV。在本文中,我们将深入探讨iPhoto的功能、工作原理以及如何利用它来提升您的照片分享...
《iPhoto相册系统 v2.1:打造个性化的网络照片管理平台》 iPhoto相册系统 v2.1是一款专为用户设计的高效、易用的网络相册管理软件,它提供了丰富的功能,旨在帮助用户更好地组织、分享和保护个人照片。这款系统的...
iPhoto多用户相册系统2.2是一款专为多个用户设计的照片管理解决方案,它提供了高效、安全且便捷的方式来共享和管理个人及集体的数码照片。这个系统的核心特性在于其多用户支持,允许不同用户拥有独立的相册,同时...
### Apple Training Series - iPhoto '11 知识点概览 #### 一、书籍基本信息与版权信息 - **书名**:Apple Training Series - iPhoto '11 - **作者**:Dion Scoppettuolo - **出版年份**:2011 年 - **出版社**:...
【标题】"iPhoto多用户相册系统 v2.2_iphoto.zip" 提供的是一款基于互联网的多用户相册管理系统,版本为2.2。这个系统可能旨在让用户能够在线存储、分享和管理自己的照片,同时支持多个用户账户,满足了个人或团队对...
国人主题, iPhoto_3.0.6 主题简介:一款国人制作的有类似huaban.com瀑布流效果的图片主题。 主题功能: 1.SEO、网站流量统计、底部版权均可后台设置; 2.主题集成了分页功能,如果个人有需求可以使用相关插件...
iPhoto我的影像是一款专为娱乐分享而设计的影像工具,它以其独特的功能和易用性,让用户能够简单快捷地将珍贵的照片与动听的音乐融合,创造出个性化的影像MTV,从而在互联网上分享生活的点滴和精彩瞬间。这款软件的...
标题中的“建立智能iPhoto相册小技巧”指的是在苹果的iPhoto软件中创建智能相册的方法,这是一种高效管理和查找照片的方式。iPhoto是苹果公司为Mac OS X操作系统设计的一款图像管理应用程序,允许用户整理、编辑和...