详解iOS开发中的转场动画和组动画以及UIView封装动画

2020-01-14 17:05:03于丽

animations:将改变视图属性的代码放在这个block中

completion:动画结束后,会自动调用这个block
 

复制代码
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion
方法调用完毕后,相当于执行了下面两句代码:
复制代码
// 添加toView到父视图

 

[fromView.superview addSubview:toView];

// 把fromView从父视图中移除

[fromView.superview removeFromSuperview];


参数解析:

 

duration:动画的持续时间

options:转场动画的类型

animations:将改变视图属性的代码放在这个block中

completion:动画结束后,会自动调用这个block

 

(2).代码示例

复制代码
#import "YYViewController.h"

 

@interface YYViewController ()
@property (weak, nonatomic) IBOutlet UIView *customView;

@end


复制代码
@implementation YYViewController

 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //block代码块动画
        [UIView transitionWithView:self.customView duration:3.0 options:0 animations:^{
            //执行的动画
            NSLog(@"动画开始执行前的位置:%@",NSStringFromCGPoint(self.customView.center));
            self.customView.center=CGPointMake(200, 300);
        } completion:^(BOOL finished) {
            //动画执行完毕后的首位操作
            NSLog(@"动画执行完毕");