网上找了几个,但都有cup暴涨的情况发生,于是利用CABasicAnimation 简单的实现一个跑马灯,实现简单,可自己定制
#import <UIKit/UIKit.h>@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];}return self;}-(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"];}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。