一聚教程网:一个值得你收藏的教程网站

热门教程

iOS使用 CABasicAnimation 实现简单的跑马灯(无cpu暴涨)

时间:2022-06-26 06:09:57 编辑:袖梨 来源:一聚教程网

网上下了几个,但都有cup暴涨的情况发生,于是利用CABasicAnimation 简单的实现一个跑马灯,实现简单,可自己定制

 

 代码如下 复制代码

#import

 

@interface LoopView : UIView

@property(nonatomic,strong)NSString *Iformation;

@property(nonatomic,strong)NSString *Image;

@end

#import "LoopView.h"

#import "UIImageView+WebCache.h"

@interface LoopView(){

  UILabel *AD;

  UIImageView *headImage;

  CABasicAnimation *animation;

   CABasicAnimation *animationhead;

}

@end

@implementation LoopView

-(instancetype)initWithFrame:(CGRect)frame{

 

  self = [super initWithFrame:frame];

  if(self) {

    AD = [[UILabel alloc]initWithFrame:CGRectMake(28*WPSCREEN_WIDTH_RATIO, 0, self.frame.size.width, self.frame.size.height)];

    [self addSubview:AD];

 

    AD.textColor = TJXColor(146, 152, 169);

    AD.font = [UIFont fontWithName:@"Gotham-Book"size:12*WPSCREEN_WIDTH_RATIO];

    AD.textAlignment = NSTextAlignmentLeft;

    headImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 20*WPSCREEN_WIDTH_RATIO, 20*WPSCREEN_WIDTH_RATIO)];

 

    [self addSubview:headImage];

 

    headImage.layer.cornerRadius = 10;

    headImage.layer.masksToBounds = YES;

 

    [self sssss];

    [self headimage];

  }

  returnself;

}

-(void)setIformation:(NSString *)Iformation{

    AD.text =Iformation;

}

-(void)setImage:(NSString *)Image{

 

   [headImage sd_setImageWithURL:[NSURL URLWithString:Image]];

}

-(void)sssss{

 

 

  animation = [CABasicAnimation animationWithKeyPath:@"position"];

  // 动画选项的设定

  animation.duration = 2;// 持续时间

  animation.repeatCount = MAXFLOAT;// 重复次数

  animation.removedOnCompletion = NO;

  animation.autoreverses = NO;

  // 起始帧和终了帧的设定

  animation.fromValue = [NSValue valueWithCGPoint:CGPointMake(AD.layer.position.x, 30*WPSCREEN_HIGTH_RATIO)];// 起始帧

  animation.toValue = [NSValue valueWithCGPoint:CGPointMake(AD.layer.position.x, AD.layer.position.y-20*WPSCREEN_HIGTH_RATIO)];// 终了帧

  // 添加动画

  [AD.layer addAnimation:animation forKey:@"AnimationMoveY"];

//  [headImage.layer addAnimation:animation forKey:@"AnimationMoveY"];

 

}

-(void)headimage{

  animationhead = [CABasicAnimation animationWithKeyPath:@"position"];

  // 动画选项的设定

  animationhead.duration = 2;// 持续时间

  animationhead.repeatCount = MAXFLOAT;// 重复次数

  animationhead.removedOnCompletion = NO;

  animationhead.autoreverses = NO;

  // 起始帧和终了帧的设定

  animationhead.fromValue = [NSValue valueWithCGPoint:CGPointMake(headImage.layer.position.x, 30*WPSCREEN_HIGTH_RATIO)];// 起始帧

  animationhead.toValue = [NSValue valueWithCGPoint:CGPointMake(headImage.layer.position.x, headImage.layer.position.y-20*WPSCREEN_HIGTH_RATIO)];// 终了帧

  // 添加动画

  [headImage.layer addAnimation:animationhead forKey:@"AnimationMoveY"];

 

}

 

热门栏目