动画-帧动画,转场动画

转场动画

1.创建转场动画:[CATransition animation];

2.设置动画属性值

3.添加到需要专场动画的图层上 [ layer addAimation:animation forKer:nil];

转场动画的类型(NSString *type)

fade : 交叉淡化过渡

push : 新视图把旧视图推出去

moveIn: 新视图移到旧视图上面

reveal: 将旧视图移开,显示下面的新视图

cube : 立方体翻滚效果

oglFlip : 上下左右翻转效果

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

rippleEffect: 水滴效果

pageCurl : 向上翻页效果

pageUnCurl : 向下翻页效果

cameraIrisHollowOpen : 相机镜头打开效果

cameraIrisHollowClos : 相机镜头关闭效果

注意:核心动画只是修改了控件的图形树,换句话说就是只是修改了他的显示,并没有改变控件的真实位置!!!也就是说在动画的过程中点击控件是不能跟用户进行交互的,切记切记!!!当然,点击控件的起始位置是可以的。

3.帧动画

这里讲的帧动画是指UIIMageView自带的动画。顺带跟大家讲下怎么将一个git动态图里面的图片取出来,并加以显示。动画属性:

@property (nonatomic) NSTimeInterval animationDuration;        // for one cycle of images. default is number of images * 1/30th of a second (i.e. 30 fps)
 
@property (nonatomic) NSInteger      animationRepeatCount;      // 0 means infinite (default is 0)

代码例子

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
        NSArray *imageArray = [self getImageArrayWithGIFNameWit:@"aisi"];
        self.imageView.animationImages = imageArray;
        self.imageView.animationDuration = 3;
        self.imageView.animationRepeatCount = MAXFLOAT;
        [self.imageView startAnimating];
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5.0 *    NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
              [_imageView stopAnimating];
        });
}
- (NSArray *)getImageArrayWithGIFNameWit:(NSString *)imageName {
      NSMutableArray *imageArray = [NSMutableArray array];
      NSString *path = [[NSBundle mainBundle] pathForResource:imageName  ofType:@"gif"];
      NSData *data = [NSData dataWithContentsOfFile:path];
      if (!data) {
         NSLog(@"图片不存在!");
         return nil;
      }
      CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)data, NULL);
      size_t count = CGImageSourceGetCount(source);
      if (count <= 1) {
          [imageArray addObject:[[UIImage alloc] initWithData:data]];
      }else {
          for (size_t i = 0; i < count; i++) {
          CGImageRef image = CGImageSourceCreateImageAtIndex(source, i, NULL);
         [imageArray addObject:[UIImage imageWithCGImage:image scale:        [UIScreen mainScreen].scale orientation:UIImageOrientationUp]];
         CGImageRelease(image);
          }
      }
      CFRelease(source);
      return imageArray;
}
动画-帧动画,转场动画_第1张图片
运行结果

你可能感兴趣的:(动画-帧动画,转场动画)