UIView动画简介

开发过程当为了让应用更绚,就加入一些动画效果。CoreAnimation比较复杂,其实UIView的简单动画就可以满足我们应用开发。UIView支持的动画属性有,frame, center, bounds,transform, alpha. 什么意思呢,就是你可以修改这些属性来完成动画,比如设置frame,uiview就可以动了。下面看一段代码:

// begin the animations block: [UIView beginAnimations:@"animationID" context:NULL]; // define how long the animation should take, in seconds. 0.5 is half a second. [UIView setAnimationDuration:3]; // animate the view itself by changing its frame: [theView setFrame:newFrame]; // or by changing its alpha value: [theView setAlpha:0.5]; // or by rotating it: theView.transform = CGAffineTransformMakeRotation(-0.7853981625); // 45 deg // optional: to execute code after the animation has finished, set the delegate: [UIView setAnimationDelegate:self]; // optional: set the animation curve: // UIViewAnimationCurveEaseIn: begins slowly, then speeds up // UIViewAnimationCurveEaseOut: begins fast, then slows down // UIViewAnimationCurveEaseInOut: begins slowly, faster in the middle, slows down at end // UIViewAnimationCurveLinear: same speed throughout [UIView setAnimationCurve: UIViewAnimationCurveEaseOut]; // start animating! [UIView commitAnimations];


这样就完成了一个动画效果, beginAnimatins:与commitAnimations这是必须写的,中间设置你的属性,这儿设置了三个属性,分别是frame,alpha,transform. 这样就完成了一个动画,那个"animationID"随便取名字。动画的时间有多长呢, 有一个默认时间,在这儿我们设置的是3秒, 动画有一个快慢,比如快进,setAnimationCurve就是控制什么时候快进,什么时候慢播。当这个动画完了的时候,会有一个delegate方法调用:

- (void)animationDidStop:(NSString *)animID finished:(BOOL)didFinish context:(void *)context { if ( [animID isEqualToString:@"animationID"] ) { NSLog(@"move10 animation finished."); [self moveBack]; } else if ( [animID isEqualToString:@"moveBack"] ) { NSLog(@"done moving."); } }
在这儿你可以检测到哪一个动画完了,比如在这儿我们检测到了animationID与moveBack.


是不是很简单呀?

在iOS4以上,支持block了,所以用它使编程将更简单,如传统的动画是这样:

[UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.5]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:containerView cache:YES]; [containerView addSubview:subview]; [UIView commitAnimations];
如果用block的方式将是:

[UIView transitionWithView:containerView duration:0.5 options:UIViewAnimationOptionTransitionCurlDown animations:^ { [containerView addSubview:subview]; } completion:nil];
具体参看文档:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值