- 浏览: 586410 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
JYY282:
[i][/i]
Ecshop与Shopex的比较 -
qq247890212:
我也遇见这问题了,真诡异。重新下载个猫换了就好了。 太浪费时间 ...
诡异:ClassNotFoundException: org.springframework.web.filter.CharacterEncoding
From: http://blog.csdn.net/diqun1314/article/details/7639121
所有核心动画的动画类都是从 CAAnimation类继承而来
CAAnimation 实现了 CAMediaTiming协议,提供了动画的持续时间,速度,和重复计数
CAAnimation 也实现了 CAAction协议。该协议为图层触发一个动画动作提供了提供 标准化响应
CATransition 提供了一个图层变化的过渡效果,它能影响图层的整个内容。 动画进行的时候淡入淡出(fade)、推(push)、显露(reveal)图层的内容。这些过渡效果可以扩展到你自己定制的Core Image 滤镜
CAAnimationGroup 允许一系列动画效果组合在一起,并行显示动画
CAPropertyAnimation是一个抽象的子类,它支持动画的显示图层的关键路径中指定的属性
CABasicAnimation 简单的为图层的属性提供修改。
CAKeyframeAnimation支持关键帧动画,你可以指定的图层属性的关键路径动画,包括动画的每个阶段的插值,以及关键帧时间和计时功能的一系列值。在 动画运行是,每个值被特定的插入值替代
核心动画的 CAConstraint 类是一个布局管理器,它可以指定子图层类限制于你指定的约束集合。每个约束(CAConstraint类的实例封装)描述层的几何属性(左,右,顶部或底部的边缘或水平或垂直中心)的关系,关系到其同级之一的几何属性层或superlayer
核心动画的图层和 Cocoa 的视图在很大程度上有一定的相似性,但是他们两者最大的区别是,图层不会直接渲染到屏幕上
视图的position坐标和anchorPoint有关
sublayerTransform属性指定的矩阵只会影响图层的子图层,而不会对 图层本身产生影响
transform 属性指定的矩阵结合图层的anchorPoint属性作用于图层和图层的子图层上 面
旋转的单位采用弧度(radians),而不是角度(degress)。以下两个函数,你可以在 弧度和角度之间切换
- CGFloat DegreesToRadians(CGFloat degrees) {returndegrees * M_PI / 180;};
- CGFloat RadiansToDegrees(CGFloat radians) {returnradians * 180 / M_PI;};
你必须通过 setValue:forKeyPath:或者valueForKeyPath:方法,具体如下:
- myLayer.transform.rotation.x=0;
- [myLayer setValue:[NSNumber numberWithInt:0]forKeyPath:@"transform.rotation.x"];
如果一个图层的属性 needsDisplayOnBoundsChange被设置为YES 的时候,当图层的bounds属性改变的时候,图层的内容将会被重新缓存起来。默认情况下图层的needsDisplayOnBoundsChange属性值为NO。
给CALayer提供内容
1。包含图片内容的 CGImageRef来显式的设置图层的contents 的属性。
2。指定一个委托,它提供或者重绘内容。
3。继承 CALayer 类重载显示的函数
创建一个委托类实
displayLayer:或 drawLayer:inContext:
- - (void)displayLayer:(CALayer *)theLayer
- {
- // check the value of the layer's state key
- if ([[theLayer valueForKey:@"state"] boolValue])
- {
- // display the yes image
- theLayer.contents=[someHelperObjectloadStateYesImage];
- }
- else {
- // display the no image
- theLayer.contents=[someHelperObjectloadStateNoImage];
- }
- }
如果你必须重绘图层的内容,而不是通过加载图片,那你需要实现drawLayer:inContext:方法。通过委托可以决定哪些内容是需要的并使用CGContextRef来重绘内容。
实例重新缓存其内容,可以通过发送以下任何一个方法setNeedsDisplay或setNeedsDisplayInRect:的消息,亦或者设置图层的needsDisplaOnBoundsChange属性为 YES
CALayer 的属性 contentsGravity允许你在图层的边界内容修改图层的contents图片的位置或者伸缩值。默认情况下,内容的图像完全填充层的边界,忽视自然的图像 宽高比contentsGravity属性值:
CABasicAnimation提供了在图层的属性值间简单的插入。CAKeyframeAnimation提供支持关键帧动画。你指定动画的一个图层属性的关键路径,一个表示在动画的每个阶段的价值的数组,还有一个关键帧时间的数组和时间函数。
CATransition提供了一个影响整个图层的内容过渡效果。在动画显示过程中采用淡出(fade)、推出(push)、显露(reveal)图层的内容。常用的过渡效果可以通过提供你自己定制的核心图像滤镜来扩展
- CABasicAnimation *_basicAnimation= [CABasicAnimation animationWithKeyPath:@"opacity"];
- _basicAnimation.duration=3.0;
- _basicAnimation.repeatCount=2;
- _basicAnimation.autoreverses=YES;
- _basicAnimation.fromValue=[NSNumber numberWithFloat:1.0];
- _basicAnimation.toValue=[NSNumber numberWithFloat:0.0];
- [self.m_imageViewBg.layer addAnimation:_basicAnimation forKey:@"animateOpacity"];
我们可以通过animationWithKeyPath键值对的方式来改变动画
animationWithKeyPath的值:
transform.scale= 比例轉換
transform.scale.x =闊的比例轉換
transform.scale.y =高的比例轉換
transform.rotation.z =平面圖的旋轉
opacity = 透明度
margin
zPosition
backgroundColor
cornerRadius
bounds
contents
- [self. ui_View.layer removeAllAnimations];
- CABasicAnimation *pulse= [CABasicAnimation animationWithKeyPath:@"transform.scale"];
- pulse.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
- pulse.duration = 0.5 + (rand() % 10) * 0.05;
- pulse.repeatCount = 1;
- pulse.autoreverses = YES;
- pulse.fromValue =[NSNumber numberWithFloat:.8];
- pulse.toValue =[NSNumber numberWithFloat:1.2];
- [self.ui_View.layer addAnimation:pulseforKey:nil];
- // bounds
- CABasicAnimation *anim = [CABasicAnimationanimationWithKeyPath:@"bounds"];
- anim.duration = 1.f;
- anim.fromValue =[NSValue valueWithCGRect:CGRectMake(0,0,10,10)];
- anim.toValue =[NSValue valueWithCGRect:CGRectMake(10,10,200,200)];
- anim.byValue = [NSValue valueWithCGRect:self. ui_View.bounds];
- // anim.toValue= (id)[UIColor redColor].CGColor;
- // anim.fromValue = (id)[UIColorblackColor].CGColor;
- anim.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- anim.repeatCount = 1;
- anim.autoreverses = YES;
- [ui_View.layeraddAnimation:anim forKey:nil];
- //cornerRadius
- CABasicAnimation*anim2 = [CABasicAnimationanimationWithKeyPath:@"cornerRadius"];
- anim2.duration = 1.f;
- anim2.fromValue =[NSNumber numberWithFloat:0.f];
- anim2.toValue =[NSNumber numberWithFloat:20.f];
- anim2.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- anim2.repeatCount = CGFLOAT_MAX;
- anim2.autoreverses = YES;
- [ui_View.layeraddAnimation:anim2 forKey:@"cornerRadius"];
- //contents
- CABasicAnimation *anim = [CABasicAnimationanimationWithKeyPath:@"contents"];
- anim.duration = 1.f;
- anim.fromValue =(id)[UIImageimageNamed:@"1.jpg"].CGImage;
- anim.toValue =(id)[UIImageimageNamed:@"2.png"].CGImage;
- // anim.byValue = (id)[UIImageimageNamed:@"3.png"].CGImage;
- // anim.toValue= (id)[UIColor redColor].CGColor;
- // anim.fromValue = (id)[UIColorblackColor].CGColor;
- anim.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- anim.repeatCount = CGFLOAT_MAX;
- anim.autoreverses = YES;
- [ui_View.layeraddAnimation:anim forKey:nil];
- [ui_View.layer setShadowOffset:CGSizeMake(2,2)];
- [ui_View.layer setShadowOpacity:1];
- [ui_View.layer setShadowColor:[UIColorgrayColor].CGColor];
- //
- CABasicAnimation *anim =[CABasicAnimation animationWithKeyPath:@"shadowColor"];
- anim.duration = 1.f;
- anim.toValue =(id)[UIColorredColor].CGColor;
- anim.fromValue = (id)[UIColorblackColor].CGColor;
- anim.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- anim.repeatCount = CGFLOAT_MAX;
- anim.autoreverses = YES;
- [ui_View.layer addAnimation:anim forKey:nil];
- CABasicAnimation *_anim= [CABasicAnimation animationWithKeyPath:@"shadowOffset"];
- _anim.duration = 1.f;
- _anim.fromValue =[NSValue valueWithCGSize:CGSizeMake(0,0)];
- _anim.toValue =[NSValue valueWithCGSize:CGSizeMake(3,3)];
- _anim.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- _anim.repeatCount = CGFLOAT_MAX;
- _anim.autoreverses = YES;
- [ui_View.layer addAnimation:_anim forKey:nil];
- CABasicAnimation *_anim1= [CABasicAnimation animationWithKeyPath:@"shadowOpacity"];
- _anim1.duration = 1.f;
- _anim1.fromValue =[NSNumber numberWithFloat:0.5];
- _anim1.toValue =[NSNumber numberWithFloat:1];
- _anim1.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- _anim1.repeatCount = CGFLOAT_MAX;
- _anim1.autoreverses = YES;
- [ui_View.layer addAnimation:_anim1 forKey:nil];
- CABasicAnimation *_anim2= [CABasicAnimation animationWithKeyPath:@"shadowRadius"];
- _anim2.duration = 1.f;
- _anim2.fromValue =[NSNumber numberWithFloat:10];
- _anim2.toValue =[NSNumber numberWithFloat:5];
- _anim2.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- _anim2.repeatCount = CGFLOAT_MAX;
- _anim2.autoreverses = YES;
- [ui_View.layeraddAnimation:_anim2 forKey:nil];
CAScrollLayer 对象的滚动区域的范围在它的子图层里面定义。
CAScrollLaye 不提供键盘或鼠标事件处理,也不提供可见的滚动条。
CATextLayer可以方便的从字符串或字符串的内容创建一个图层类的内容
CATiledLayer 允许递增的显示大而复杂的图片
CAEAGLLayer 提供了一个OpenGLES渲染环境
CALayer 的还扩展了 NSKeyValueCoding的非正式协议,加入默认键值和额外的结构类型的自动对象包装(CGPoint,CGSize,CGRect,CGAffineTransform和CATransform3D)的支持,并提供许多这些结构的关键路径领域的访问
发表评论
-
Objective-C 与 C++ 的异同
2013-04-02 12:03 1526http://www.cnblogs.com/y041039 ... -
Cocos2D-X是全球知名的开源跨平台手机游戏引擎
2013-01-22 10:05 2776http://www.oschina.net/p/cocos ... -
iOS Keyboard 键盘高度变化 自适应
2013-01-15 15:43 3372[[NSNotificationCenter default ... -
iOS使用自定义字体
2012-11-27 12:11 12177From: http://blog.csdn.net/csy1 ... -
4 款类似 Facebook/Path 切换效果的 iOS 组件
2012-11-27 12:03 2222From: http://blog.csdn.net/lia ... -
Path 2.0的UI界面设计详细介绍
2012-11-27 11:56 1490如Path的创始人Dave Morin ... -
史上最全的App Store邮箱列表
2012-11-27 11:51 1287From: http://roybaby.blog.51cto ... -
iOS从info.plist 获取项目的名称及版本号
2012-11-16 10:54 1701From: http://blog.sina.com.cn/s ... -
MapKit annotation drag and drop with callout info update
2012-10-13 10:38 2434http://hollowout.blogspot ... -
NSArray 或NSDictionary 调用writeToFile方法失败原因
2012-08-31 10:03 4524NSArray 或NSDictionary 调用writeTo ... -
如何让IOS应用从容地崩溃
2012-08-30 15:25 1637From: http://www.cocoachina.com ... -
iOS中判断设备系统版本
2012-08-29 17:17 31732在iOS开发中,经常要考虑系统的向下兼容,如果使用 ... -
iOS 汉字转拼音
2012-08-21 16:42 1488From: http://www.cnblogs.com/v2 ... -
iOS模拟器截图工具
2012-08-17 16:35 1691From: http://magicalboy.com/ios ... -
XCode下的iOS单元测试
2012-08-10 17:47 1192From: http://mobile.51cto.com/ ... -
AFNetworking
2012-08-08 10:54 4665AFNetworking on github: https:/ ... -
Wrapping Conventions
2012-08-01 15:54 870Wrapping Conventions ... -
Core Animation如何使显式动画结束时的值直接作用Layer
2012-08-01 14:51 3808(1)使用隐式动画会直接改变layer的属性值,如: ima ... -
How To Debug Memory Leaks with XCode and Instruments Tutoria
2012-07-31 16:30 1071From: http://www.raywenderlich. ... -
Using Properties in Objective-C Tutorial
2012-07-31 16:27 952From: http://www.raywenderlich. ...
相关推荐
总结:iOS动画基础涵盖了从UIView到Core Animation的使用,包括简单动画、组合动画、关键帧动画、交互式动画以及自定义动画的实现。通过理解并熟练运用这些知识,开发者可以创建出丰富的、富有动态感的用户界面,...
首先,我们需要了解iOS中的动画基础。在iOS平台上,Core Animation是负责2D图形渲染和动画的主要框架。它是AppKit(macOS)和UIKit(iOS)的一部分,提供了强大的动画功能,可以轻松地创建各种视觉效果。 1. **Core...
在这里,我们将深入探讨iOS动画的基础知识,包括Core Animation、UIView动画以及CAAnimation的相关概念。 1. **Core Animation**: Core Animation是iOS中用于创建视觉效果和动画的核心框架。它是Apple为开发者提供...
首先,我们要了解`CABasicAnimation`类,它是Core Animation中最基础的动画类型。`CABasicAnimation`用于对CALayer的属性进行平滑的动画过渡。在这个Demo中,我们可能关注的是`position`或`transform`属性,这两个...
### iOS基础动画详解 在iOS应用开发中,动画效果不仅能够提升用户体验,还能增强应用程序的交互性和视觉吸引力。本篇文章将深入探讨iOS基础动画的概念、原理及其在实际开发中的应用,旨在为iOS开发者提供一份详实的...
在iOS开发中,动画是提升用户体验的关键因素之一。本文将深入探讨如何在iOS平台上实现基本的动画效果,包括旋转、移动、闪烁以及缩放。这些动画效果能够使用户界面更加生动,增强应用的视觉吸引力。 ### 旋转动画 ...
首先,我们需要理解iOS动画的基础。iOS中的动画主要基于Core Animation框架,这是一个强大的2D图形渲染系统,它可以创建出流畅、高性能的视觉效果。在Xcode项目中,我们通常会使用`UIView`类或其子类的`...
1. **iOS动画基础**:包括基本的UIView动画,如平移、旋转、缩放、淡入淡出等。 2. **Core Animation**:更底层的动画框架,允许对CALayer进行更复杂的动画操作,如关键帧动画、路径动画等。 3. **动画的时间函数...
视图动画(View Animation)是iOS中一种基础的动画机制,它允许开发者对UIView对象进行一系列平移、旋转、缩放等操作,以创建出动态效果。在iOS 7及以后的版本中,UIView动画变得更加灵活,支持更复杂的动画序列和...
"iOS动画源码"这个主题深入探讨了iOS系统中的动画实现技术,包括Core Animation、UIKit Dynamics以及自定义动画等。这里我们将详细解析这些动画技术,并提供相关的源码实践。 一、Core Animation Core Animation是...
在iOS开发中,动画是提升用户体验的关键因素,它能让用户界面更加生动有趣。...通过研究"moveAndscale"这个示例,开发者可以学习到iOS动画的基础和高级技巧,从而在自己的应用中实现丰富的视觉效果。
首先,我们要了解Swift中的动画基础。Swift内置了UIKit框架,其中`UIView`类包含了基本的动画功能。通过`UIView.animate(withDuration:)`方法,我们可以创建简单的动画,比如平移、旋转、缩放等。此外,`Core ...
1. **Core Animation**: iOS中的动画基础是Core Animation框架,它提供了低级别的API来创建2D图形和动画。开发者可以通过调整CALayer的属性,如transform、position、opacity等,来实现平移、旋转、缩放等动画效果。...
本文将深入探讨iOS动画效果的实现原理,以及如何通过代码来创建生动有趣的动画。标题“ios动画效果”表明我们将讨论的是在苹果的移动操作系统上实现的各种视觉动态效果。 描述中提到的“ios的动画效果代码,非常...
本资源"iOS动画效果集 - CA360.zip"包含了一系列基于Objective-C编写的`Core Animation`示例,旨在帮助开发者深入理解和运用这个框架。 `Core Animation`并非只是简单的2D动画库,而是通过图层(Layers)和渲染树...
在iOS开发中,动画是提升用户体验的关键因素,它能让用户界面更加生动有趣。本文将深入探讨iOS中的两种主要动画技术:UIKit动画和Core Animation动画。...在实践中不断探索和实验,是掌握iOS动画技术的关键。
描述中的“从动画基础开始学习kitten动画”表明手册的内容从最基本的动画概念和知识讲起,进而深入到kitten动画的具体实现和应用。这为初学者提供了循序渐进的学习路径,并且可能涉及Kitten这位作者独创的动画效果或...
在iOS动画的学习中,关键帧动画是第四章的内容,这部分内容深入探讨了关键帧动画的实现和应用。在移动开发领域,尤其是iOS平台,关键帧动画是实现流畅用户体验的重要手段之一。由于国内相关的中文资料较为缺乏,加上...
在iOS开发中,动画是提升用户体验的关键元素之一。位移动画和渐隐渐现动画是两种常见的动画效果,它们能够使界面更具动态感,让用户在交互时感到更加舒适和流畅。下面将详细介绍如何在iOS中实现这两种动画效果,并...
在iOS开发中,动画是提升用户体验、增加应用交互性的重要手段。本文将深入探讨iOS自定义动画的实现,包括核心动画框架、视图动画、动效设计原则以及AnimatTabbarSample项目中的具体实践。 一、核心动画(Core ...