iOS动画编程-进阶

0、动画基础

  • 主要动画属性

1、XY坐标属性:Position(左上角为原点)

2、透明度属性:Opacity(透明:0.0,不透明:1.0)

3、缩放属性:Scale(调整对象的尺寸,如对话框的显示)

4、其他属性:Color(颜色属性)、Rotate(旋转属性)、3D属性(如3D翻转)

  • 思考动画是如何形成的

    1、动画开始时对象的属性

    2、动画结束时对象的属性

    3、动画执行的时间

    4、在动画执行过程中会发生什么

    5、动画结束后会发生什么

  • 动画曲线

    1、线性匀速变化(Linear)

    2、以慢速开始:加速变化(Ease In)

    3、先加速后减速的变化(Ease In,Ease Out)

    4、以慢速结束:减速变化(Ease Out)

1、UIKit和Core Animation

  • 架构

UIKit(iOS) and Appkit(OS X)

Core Animation

OpenGL ES and OpenGL    Core Graphics

Graphics Hardware

  • 实例

//创建

let redBall = UIView(frame: CGRectMake(50, 50, 100, 100))

redBall.backgroundColor = UIColor.redColor()

redBall.layer.cornerRadius = 50

self.view.addSubview(redBall)

//球的放大动画

UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in

redBall.transform = CGAffineTransformMakeScale(2, 2)

}) { (finished:Bool) -> Void in

print("finished")

}


override func viewDidLoad() {

super.viewDidLoad()

//创建

let redBall = UIView(frame: CGRectMake(50, 50, 100, 100))

redBall.backgroundColor = UIColor.redColor()

redBall.layer.cornerRadius = 50

self.view.addSubview(redBall)

//球的放大动画

UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in

//            redBall.transform = CGAffineTransformMakeScale(2, 2)

//组合动画,CGAffineTransformConcat

redBall.transform = CGAffineTransformConcat(CGAffineTransformMakeScale(2.0, 2.0), CGAffineTransformMakeTranslation(150, 50))

}) { (finished:Bool) -> Void in

print("finished")

}

}

组合动画:CGAffineTransformConcat


override func viewDidLoad() {

super.viewDidLoad()

//创建

let redBall = UIView(frame: CGRectMake(50, 50, 100, 100))

redBall.backgroundColor = UIColor.redColor()

redBall.layer.cornerRadius = 50

self.view.addSubview(redBall)

//球的放大动画

UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in

//            redBall.transform = CGAffineTransformMakeScale(2, 2)

//组合动画,CGAffineTransformConcat

redBall.transform = CGAffineTransformConcat(CGAffineTransformMakeScale(2.0, 2.0), CGAffineTransformMakeTranslation(150, 50))

redBall.backgroundColor = UIColor.greenColor()

}) { (finished:Bool) -> Void in

print("finished")

}

}

弹性动画(spring Animation),iOS 7.0以后有此动画


//创建

let redBall = UIView(frame: CGRectMake(50, 50, 100, 100))

redBall.backgroundColor = UIColor.redColor()

redBall.layer.cornerRadius = 50

self.view.addSubview(redBall)

//弹性动画,iOS 7.0以后有此动画

UIView.animateWithDuration(2.0, delay: 0, usingSpringWithDamping: 0.3,//弹性阻尼,取值范围是0-1,越接近0,动画的弹性效果就越明显;如果设置为1,则动画不会有弹性效果

initialSpringVelocity: 0,//视图在动画开始时的速度,通常都应该传入0

options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in

redBall.transform = CGAffineTransformConcat(

CGAffineTransformMakeScale(2, 2),CGAffineTransformMakeTranslation(150, 50)

)

redBall.backgroundColor = UIColor.greenColor()

}) { (finished:Bool) -> Void in

print("finished")

}

2、JNWSpringAnimation

3、Facebook Pop(Facebook Paper)

时间: 2024-10-09 13:12:05

iOS动画编程-进阶的相关文章

iOS动画编程1-仿射变换

仿射变换本质是一种矩阵变换,可以用来做平移,缩放,旋转等操作 这些操作我们可以包装到动画中去 1.apple的官方文档定义: CGAffineTransform CGAffineTransformMake ( CGFloat a, CGFloat b, CGFloat c, CGFloat d, CGFloat tx, CGFloat ty ); Parameters a The value at position [1,1] in the matrix. b The value at posi

iOS动画编程-2

第二章 核心动画渲染框架 虽然核心动画的图层和 Cocoa 的视图在很大程度上没有一定的相似性,但是他们两者最大的区别是,图层不会直接渲染到屏幕上. 在模型-视图-控制器(model-view-controller)概念里面 NSView 和 UIView 是典型的视图部分,但是在核心动画里面图层是模型部分.图层封装了几何.时间.可视化属性,同时它提供了图层现实的内容,但是实际显示的过程则不是由它来完成. 每个可见的图层树由两个相应的树组成:一个是呈现树,一个是渲染树.下图显示在 Mac OS

iOS动画编程

1.视图动画(UIViewAnimation) 可以改变视图的属性(Animatable UIView properties) frame:控制UIView的大小和该UIView在superview中的相对位置. bounds:控制UIView的大小 center:控制UIView的位置 transform:控制UIView的缩放,旋转角度等固定好中心位置之后的变化 alpha:控制UIView的透明度 backgroundColor:控制UIView的背景色 contentStretch:控制

iOS开发——动画编程的几种方法

动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKeyframeAnimation>,NSTimer 这里我就总结了一下这五种方法,其实iOS开发中动画的编程都会在这里面变化,所以只要弄懂了这些动画编程就不难了. 一:UIView动画 一般方式 [UIView beginAnimations:@"ddd" context:nil];//设置动画[

iOS开发之动画编程的几种方法

iOS开发之动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKeyframeAnimation>,NSTimer 这里我就总结了一下这五种方法,其实iOS开发中动画的编程都会在这里面变化,所以只要弄懂了这些动画编程就不难了. 一:UIView动画 一般方式 [UIView beginAnimations:@"ddd" context:nil];/

《iOS 高级编程》之Tableview进阶指南

本章内容: ●    学习如何进阶使用UITableView,带给应用更高级的观感(look and feel) ●    学习如何开发自己定制的UITableView类,模仿iMessage应用的观感 ●    为一个基于分组的UITableView实现下钻逻辑 在iOS应用中呈现数据时,UITableView可能是最经常使用的用户界面对象.在本章中,将学习到以超越标准实现的方式使用UITableView,并理解UITableView类的工作方式.你会创建一个聊天视图控制器,它支持定制的单元格

核心动画编程指南Core Animation Programming Guide - iOS

1 有关核心动画 1.1 概览 1.1.1 Core Animation 管理应用的内容 核心是 layer objects, 1.1.2 更改 layer 触发动画 Like views, layer objects have a bounds rectangle, a position onscreen, an opacity, a transform, and many other visually-oriented properties that can be modified. 更改这

iOS开发——动画编程OC篇&amp;总结

动画总结 iOS 动画Animation详解, UIView动画(UIView属性动画,UIViewTransition动画,UIView Block动画),CALayer动画(CABasicAnima, CAKeyframeAnimation, CATransition, CAAnimationGroup) 1 iOS 动画Animation详解, UIView动画(UIView属性动画,UIViewTransition动画,UIView Block动画),CALayer动画(CABasicA

iOS动画开发之一——UIViewAnimation动画的使用

iOS动画开发之一--UIViewAnimation动画的使用 一.简介 一款APP的成功与否,除了完善的功能外,用户体验也占有极大的比重,动画的合理运用,可以很好的增强用户体验.iOS开发中,常用的动画处理有UIView动画编程和核心动画编程,其中UIView动画使用简便,开发中应用十分广泛.这篇博客,主要讨论UIView的动画使用. 二.UIView动画的几个方法 + (void)animateWithDuration:(NSTimeInterval)duration animations: