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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 冷洪林阅读 150评论 0 0
  • 翻译技巧---英语翻译中的数数方法 英语中的有些数词在汉译时可以等值翻译。但是,也有不少数词在汉译中不能等值翻译,...
    哟呵哟喂阅读 773评论 0 2
  • 壹 前段时间迷上了寝室楼下的蛋挞。每次下午去上课前都会绕过去买上一个红豆或者原味来解馋。不吃徒留遗憾,多了又增添罪...
    一是半包围结构阅读 423评论 0 0
  • 下定决心要抓住青春的努力一把,周六像往常一样2点多就下班,不过不打算如往常一样早早回家,窝房间里等着这一天的完结。...
    Renee2015阅读 312评论 1 0
  • 君子食无求饱, 居无求安。 敏于事 而慎于言。
    喜亭_bf8f阅读 303评论 2 7