在上星期公司要求要把APP的首页头部图片改为轮播图
要知道一个轮播图实现的方式有太多太多了
正在犹豫的时候突然想到了项目中的跑马灯的一个动画效果
就想着是否可以利用动画的方式来进行轮播图
试了一下
没想到还真的可以
这就太帅了
还可以简化代码还可以节约内存
不啰嗦了,上代码
@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;
}
展示图