iOS使用 CABasicAnimation 實(shí)現(xiàn)簡(jiǎn)單的跑馬燈(無(wú)cpu暴漲)
網(wǎng)上找了幾個(gè),但都有cup暴漲的情況發(fā)生,于是利用CABasicAnimation 簡(jiǎn)單的實(shí)現(xiàn)一個(gè)跑馬燈,實(shí)現(xiàn)簡(jiǎn)單,可自己定制
#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"]; // 動(dòng)畫選項(xiàng)的設(shè)定 animation.duration = 2; // 持續(xù)時(shí)間 animation.repeatCount = MAXFLOAT; // 重復(fù)次數(shù) animation.removedOnCompletion = NO; animation.autoreverses = NO; // 起始幀和終了幀的設(shè)定 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)]; // 終了幀 // 添加動(dòng)畫 [AD.layer addAnimation:animation forKey:@"AnimationMoveY"]; // [headImage.layer addAnimation:animation forKey:@"AnimationMoveY"]; } -(void)headimage{ animationhead = [CABasicAnimation animationWithKeyPath:@"position"]; // 動(dòng)畫選項(xiàng)的設(shè)定 animationhead.duration = 2; // 持續(xù)時(shí)間 animationhead.repeatCount = MAXFLOAT; // 重復(fù)次數(shù) animationhead.removedOnCompletion = NO; animationhead.autoreverses = NO; // 起始幀和終了幀的設(shè)定 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)]; // 終了幀 // 添加動(dòng)畫 [headImage.layer addAnimation:animationhead forKey:@"AnimationMoveY"]; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
iOS本地動(dòng)態(tài)生成驗(yàn)證碼的方法
這篇文章主要介紹了iOS本地動(dòng)態(tài)生成驗(yàn)證碼的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01超精準(zhǔn)的iOS計(jì)步器實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了超精準(zhǔn)的iOS計(jì)步器實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11iOS登錄時(shí)驗(yàn)證手機(jī)號(hào)與倒計(jì)時(shí)發(fā)送驗(yàn)證碼問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于iOS登錄時(shí)驗(yàn)證手機(jī)號(hào)與倒計(jì)時(shí)發(fā)送驗(yàn)證碼問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2019-01-01IOS開發(fā)仿微信右側(cè)彈出視圖實(shí)現(xiàn)
這篇文章主要介紹了IOS開發(fā)仿微信右側(cè)彈出視圖實(shí)現(xiàn)的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家實(shí)現(xiàn)這樣類似的功能,需要的朋友可以參考下2017-10-10分享一個(gè)iOS下實(shí)現(xiàn)基本繪畫板功能的簡(jiǎn)單方法
這篇文章主要介紹了iOS下實(shí)現(xiàn)基本繪畫板功能的簡(jiǎn)單方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-10-10