close
当前位置: 物联网在线 > 技术文库 > ios >

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

网上找了几个,但都有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"]; }

来自:


(责任编辑:ioter)

用户喜欢...

有意义的步骤让私有云实现更容易

有些人认为,私有云只是本地已经实施的虚拟化的一个扩展,但事实上却不只如此。私有云的实现可以帮助打破数据...


在 Airbnb 使用机器学习预测房源的价格

作者:Robert Chang 位于希腊爱琴海伊莫洛维里的一个 Airbnb 民宿的美好风景 简介 数据产品一直是 Airbnb 服务的重要组成...


如何使用可编程逻辑为按钮输入消抖

可编程逻辑具有传统分立 IC 无法提供的灵活性。 借助现成的开发工具,可轻松使用现场可编程门阵列和复杂可编程逻辑器件创建应用特定型功能。 按钮开关输入消抖便是此类功能的一个例子...


使用 LoRa 进行低速率、长距离物联网应用开发

设计人员可以使用各种各样的无线技术将产品连接到物联网 (IoT)。每种技术适用于不同的应用,需要设计人员仔细考虑作用距离和数据速率、成本、功耗、体积和外形等因素。 本文将介绍 LoR...


Vicor 高密度合封电源方案​助力人工智能处理器实现更高的性能

Vicor 公司(NASDAQ 股票交易代码:VICR)今日宣布推出适用于高性能、大电流 CPU/GPU/ASIC(“XPU”)处理器合封的模块化电流倍增器。Vicor 合封电源方案不仅可以减少 XPU 插座的引脚数,还可减少...


这款智能手表心率检测超强 可当做心电图机使用

Cronovo智能手表特别强调心率追踪功能,它安装了Android系统,可以成为个人健身教练,拥有先进的感知追踪系统。Cr...


用于实现脉宽调制 (PWM) 控制的 Allegro MicroSystems A3916 全桥电机驱动器

Allegro MicroSystems的 A3916设计用于实现低电压步进电机和单、双直流电机的脉宽调制 (PWM) 控制。A3916 每通道输出电池可达 1 A,工作电压范围为 2.7 V 至 15 V。A3916 具有内部固定关断时间 PWM 定时器,...


Quora是如何使用机器学习的?

作者:Nikhil Dandekar 2015年,公司的工程副总裁Xavier Amatriain,关于如何在Quora上使用机器学习给了一个很好的答案。从那...


超少量数据训练神经网络:IEEE论文提出径向变换实现图像增强

作者:李亚洲 近日,一篇题为《Training Neural Networks with Very Little Data-A Draft》IEEE 论文提出...


机器学习算法的基本知识(使用Python和R代码)

本篇文章是原文的译文,然后自己对其中做了一些修改和添加内容(随机森林和降维算法)。文章简洁地介绍了机器学习的主要算法和一些伪代码,对于初学者有很大帮助,是一篇不错的总结...