1.UIVIew

1.1 动画块(改变背景颜色和移动)

static BOOL flag=YES;

//开始动画

[UIView beginAnimations:nil context:nil];

//运动的时间

[UIView setAnimationDuration:2.f];

//延时启动

[UIView setAnimationDelay:2.f];

//速度曲线

[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];

//代理

[UIView setAnimationDelegate:self];

//开始时候执行

[UIView setAnimationWillStartSelector:@selector(startAction)];

//结束时候执行

// [UIView setAnimationDidStopSelector:@selector(stopAction)];

//重复执行

[UIView setAnimationRepeatAutoreverses:YES];

//重复执行次数

[UIView setAnimationRepeatCount:5];

//动画过程(换背景色)

self.myView.backgroundColor=[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];

//改位置

CGRect myFrame=self.myView.frame;

if (flag) {

//向下移动

myFrame.origin.y+=100;

myFrame.size.height+=150;

flag=NO;

}

else

{

myFrame.origin.y-=100;

myFrame.size.height-=150;

flag=YES;

}

self.myView.frame=myFrame;

self.myView.alpha=0.5;

//提交动画

[UIView commitAnimations];

************


1.2 block块

//自己的Block

[self myAnimationDuration:2.f animaton:^{

self.myView.backgroundColor=[UIColor grayColor];

}];

//系统提供的Block

[UIView animateWithDuration:2.f animations:^{

self.myView.backgroundColor=[UIColor greenColor];

}];

//第一个Block块执行动画

//第二个Block块是在执行完动画后执行

[UIView animateWithDuration:2.f animations:^{

self.myView.backgroundColor=[UIColor greenColor];

} completion:^(BOOL finished) {

self.myView.backgroundColor=[UIColor redColor];

}];

//自己定义的动画Block块方法

-(void)myAnimationDuration:(NSTimeInterval )time animaton:(animation)ani

{

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:time];

ani();

[UIView commitAnimations];

}

***********


1.3UIViewYransition

//第一个方法

[UIView transitionWithView:self.myView duration:2.f options:(UIViewAnimationOptionTransitionFlipFromBottom) animations:^{

NSLog(@"动画开始了");

} completion:^(BOOL finished) {

NSLog(@"动画结束了");

}];

//第二个方法

[UIView transitionWithView:<#(UIView *)#> duration:<#(NSTimeInterval)#> options:<#(UIViewAnimationOptions)#> animations:<#^(void)animations#> completion:<#^(BOOL finished)completion#>]


2.CGAffineTransfrom

[UIView animateWithDuration:2.f animations:^{

//缩小(基于前一次变化)

self.myView.transform=CGAffineTransformScale(self.myView.transform, 0.2f, 0.2f);

//旋转(基于前一次变化)

self.myView.transform=CGAffineTransformRotate(self.myView.transform, M_PI);

}];


3.CALayer 的属性

//设置圆角

self.myView.layer.cornerRadius=50;

//边框颜色

self.myView.layer.borderWidth=20;

self.myView.layer.borderColor=[UIColor redColor].CGColor;

//阴影颜色

self.myView.layer.shadowColor=[UIColor grayColor].CGColor;

//阴影偏移

self.myView.layer.shadowOffset=CGSizeMake(-10, 10);

//透明度必须设置

self.myView.layer.shadowOpacity=0.3;

//模糊程度

self.myView.layer.shadowRadius=4;

//设置锚点

self.myView.layer.anchorPoint=CGPointMake(.5, .5);

*****************************


********************

4.CAPropertyAnimation(两个子类CABasicAnimation和CAKeyframeAnimation)

4.1.CABasicAnimation

//CALayer

//UIView的属性动画,会修改属性产生动画.

//CALayer,没有修改UIView属性

//创建animation对象

CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"position"];

//从那儿开始

animation.fromValue=[NSValue valueWithCGPoint:self.myView.layer.position];

//到哪儿结束

animation.toValue=[NSValue valueWithCGPoint:CGPointMake(200, 200)];

//设置时间

animation.duration=2.0;

//自动执行

animation.autoreverses=YES;

//执行次数

animation.repeatCount=3;

//添加到self.view.layer

[self.myView.layer addAnimation:animation forKey:@"position动画"];

//缩放动画

CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"transform.scale"];

//初始值

animation.fromValue=[NSNumber numberWithFloat:1.0];

//结束值

animation.toValue=[NSNumber numberWithFloat:3.0];

//设置时间

animation.duration=0.1;

////自动执行

animation.autoreverses=YES;

//执行次数

animation.repeatCount=100;

//添加到self.view.layer

[self.myView.layer addAnimation:animation forKey:@"缩放动画"];


4.2CAKeyframeAnimation

//指定位置移动

CAKeyframeAnimation *animation=[CAKeyframeAnimation animationWithKeyPath:@"position"];

//持续时间

animation.duration=2.0;

//自动

animation.autoreverses=YES;

//此数

animation.repeatCount=30;

NSArray *array=@[[NSValue valueWithCGPoint:CGPointMake(50, 50)],[NSValue valueWithCGPoint:CGPointMake(200, 25)],[NSValue valueWithCGPoint:CGPointMake(25, 200)],[NSValue valueWithCGPoint:CGPointMake(200, 200)]];

animation.values=array;

//添加到self.view.layer

[self.myView.layer addAnimation:animation forKey:@"动画"];

*****************************************


5.CAAnimationGroup

CAAnimationGroup *group=[CAAnimationGroup animation];

//第一个动画

CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"transform.scale"];

animation.fromValue=[NSNumber numberWithFloat:1.0];

animation.toValue=[NSNumber numberWithFloat:3.0];

//第二个动画

CAKeyframeAnimation *animation1=[CAKeyframeAnimation animationWithKeyPath:@"position"];

NSArray *arr=@[[NSValue valueWithCGPoint:CGPointMake(50, 50)],[NSValue valueWithCGPoint:CGPointMake(200, 50)],[NSValue valueWithCGPoint:CGPointMake(50, 200)],[NSValue valueWithCGPoint:CGPointMake(200, 200)]];

animation1.values=arr;

//添加到动画数组

group.animations=@[animation,animation1];

group.duration=1;

group.autoreverses=YES;

group.repeatCount=500;

//数组添加到view的layer

[self.myView.layer addAnimation:group forKey:@"组合"];


6.CATransition

/*

pageCurl 向上翻一页

pageUnCurl 向下翻一页

rippleEffect 滴水效果

suckEffect 收缩效果,如一块布被抽走

cube 立方体效果

oglFlip 上下翻转效果

*/

CATransition *ani=[CATransition animation];

ani.type=@"cube";

ani.subtype=kCATransitionFromLeft;

ani.duration=2;

ani.repeatCount=30;

[self.myView.layer addAnimation:ani forKey:@"动画"];


UIAnimation包括三个子类:(CAnimationGroup. CAPropertyAnimation(两个子类CABasicAnimation,CAkeyFraneAnimation).CATransition)


优质内容筛选与推荐>>
1、关于页面中CKeditor提交问题
2、Tile editor 快捷键
3、MYSQL(高可用方案)
4、spring注解方式实现定时器
5、js笔记----(运动)淡入淡出


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号