iOS使用 CABasicAnimation 实现简单的跑马灯(无cpu暴涨)
网上找了几个,但都有cup暴涨的情况发生,于是利用CABasicAnimation简单的实现一个跑马灯,实现简单,可自己定制
#import<UIKit/UIKit.h> @interfaceLoopView:UIView @property(nonatomic,strong)NSString*Iformation; @property(nonatomic,strong)NSString*Image; @end
#import"LoopView.h" #import"UIImageView+WebCache.h" @interfaceLoopView(){ UILabel*AD; UIImageView*headImage; CABasicAnimation*animation; CABasicAnimation*animationhead; } @end @implementationLoopView -(instancetype)initWithFrame:(CGRect)frame{ self=[superinitWithFrame:frame]; if(self){ AD=[[UILabelalloc]initWithFrame:CGRectMake(28*WPSCREEN_WIDTH_RATIO,0,self.frame.size.width,self.frame.size.height)]; [selfaddSubview:AD]; AD.textColor=TJXColor(146,152,169); AD.font=[UIFontfontWithName:@"Gotham-Book"size:12*WPSCREEN_WIDTH_RATIO]; AD.textAlignment=NSTextAlignmentLeft; headImage=[[UIImageViewalloc]initWithFrame:CGRectMake(0,0,20*WPSCREEN_WIDTH_RATIO,20*WPSCREEN_WIDTH_RATIO)]; [selfaddSubview:headImage]; headImage.layer.cornerRadius=10; headImage.layer.masksToBounds=YES; [selfsssss]; [selfheadimage]; } returnself; } -(void)setIformation:(NSString*)Iformation{ AD.text=Iformation; } -(void)setImage:(NSString*)Image{ [headImagesd_setImageWithURL:[NSURLURLWithString:Image]]; } -(void)sssss{ animation=[CABasicAnimationanimationWithKeyPath:@"position"]; //动画选项的设定 animation.duration=2;//持续时间 animation.repeatCount=MAXFLOAT;//重复次数 animation.removedOnCompletion=NO; animation.autoreverses=NO; //起始帧和终了帧的设定 animation.fromValue=[NSValuevalueWithCGPoint:CGPointMake(AD.layer.position.x,30*WPSCREEN_HIGTH_RATIO)];//起始帧 animation.toValue=[NSValuevalueWithCGPoint:CGPointMake(AD.layer.position.x,AD.layer.position.y-20*WPSCREEN_HIGTH_RATIO)];//终了帧 //添加动画 [AD.layeraddAnimation:animationforKey:@"AnimationMoveY"]; //[headImage.layeraddAnimation:animationforKey:@"AnimationMoveY"]; } -(void)headimage{ animationhead=[CABasicAnimationanimationWithKeyPath:@"position"]; //动画选项的设定 animationhead.duration=2;//持续时间 animationhead.repeatCount=MAXFLOAT;//重复次数 animationhead.removedOnCompletion=NO; animationhead.autoreverses=NO; //起始帧和终了帧的设定 animationhead.fromValue=[NSValuevalueWithCGPoint:CGPointMake(headImage.layer.position.x,30*WPSCREEN_HIGTH_RATIO)];//起始帧 animationhead.toValue=[NSValuevalueWithCGPoint:CGPointMake(headImage.layer.position.x,headImage.layer.position.y-20*WPSCREEN_HIGTH_RATIO)];//终了帧 //添加动画 [headImage.layeraddAnimation:animationheadforKey:@"AnimationMoveY"]; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。