iOS 轮播图-利用动画机制

在上星期公司要求要把APP的首页头部图片改为轮播图
要知道一个轮播图实现的方式有太多太多了
正在犹豫的时候突然想到了项目中的跑马灯的一个动画效果
就想着是否可以利用动画的方式来进行轮播图


5_0d9dc79c10fdca56880a18c6be87b283.gif

试了一下
没想到还真的可以
这就太帅了
还可以简化代码还可以节约内存
不啰嗦了,上代码

@property (weak ,nonatomic)UIImageView * imageBack;

@property(assign ,nonatomic)NSTimer * Time;

/**
 创建UI
 */
-(void)createUI{
    //背景图片
    UIImageView * imageBack = [[UIImageView alloc]initWithFrame:self.bounds];
    _imageBack = imageBack;
    imageBack.image = [UIImage imageNamed:@"背景首页"];
    [self addSubview:imageBack];
    _Time = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(timerClick) userInfo:nil repeats:YES];
}

-(void)timerClick{
    [self.imageBack sd_setImageWithURL:[NSURL URLWithString:@"http://h.hiphotos.baidu.com/image/h%3D300/sign=b12ec0dd93510fb367197197e932c893/b999a9014c086e064a76b12f0f087bf40bd1cbfc.jpg"] placeholderImage:[UIImage imageNamed:@"加载中"]];
    [self.imageBack.layer addAnimation:[self createTransitionAnimation] forKey:nil];
}

-(CATransition *)createTransitionAnimation
{
    //切换之前添加动画效果
    //后面知识: Core Animation 核心动画
    //不要写成: CATransaction
    //创建CATransition动画对象
    CATransition *animation = [CATransition animation];
    //设置动画的类型:
    animation.type = @"push";
    //设置动画的方向
    animation.subtype = kCATransitionFromRight;
    //设置动画的持续时间
    animation.duration = 0.5f;
    //设置动画速率(可变的)
    animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
    //动画添加到切换的过程中
    return animation;
}

展示图


QQ20181024-142547.gif

你可能感兴趣的:(iOS 轮播图-利用动画机制)