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)

用户喜欢...

使用光学传感器解决传感挑战

能够适应不断变化的应用要求的测量系统是首选,因为不断增长的成本压力需要较长的系统寿命和功能灵活性。开发此类系统的最有效方法是使用像PXI这样的软件定义的模块化架构。可以混合和...


使用DLP技术创建高分辨率自适应大灯

传统上,典型的汽车前照灯光束仅照亮车辆前方的物体,以提高驾驶员在低光照和恶劣天气条件下的可视性。低光束在车辆前方短距离照亮道路,而远光灯具有更长的范围和更宽的角度。这种...


使用原型套件简化能量收集设计

在使用设计之前,根据其环境条件,能量收集电路能够提供多少功率可能并不明显。 这会影响能量收集源和能量存储所需的尺寸和质量。 为了使设计进一步复杂化,诸如能量存储泄漏,稳压器...


使用Xilinx系统生成器实现简单的DDS

在本文中,我们将讨论使用Xilinx System Generator实现简单的直接数字频率合成器(DDS)。 System Generator是一个功能强大的工具,它将Xilinx FPGA设计过程与MATLAB的Simulink集成,后者使用高级描述轻松实...


可实现更佳充电灵活性的谐振式无线充电解决方案

可实现更佳充电灵活性的谐振式无线充电解决方案 谐振式无线充电技术利用磁共振在松散耦合的线圈之间传输功率,工作频率为 6.78 MHz。 对于要求充电时发射器与接收器线圈无需精准对准的应...


快速实现精度达 10 厘米的实时定位系统

无线电定位系统已成为几乎所有类型的移动设备和相关应用的标配功能。在众多无线电定位方法中,基于超宽带 (UWB) 射频通信的实时定位系统 (RTLS) 扮演了中枢角色,确保在 GPS 等更为人熟悉的...


如何为RF应用选择,使用和维护同轴连接器

无线电频率(RF)电路在有线和无线通信中正在激增,包括用于物联网(IoT)的Wi-Fi和各种无线技术。这些高频信号需要在系统,电路组件和子组件之间进行分配,而损耗或寄生辐射损耗最小。...


制造商和工程师:了解您的仪表放大器以实现准确的物联网数据采集

感知是物联网(IoT)和智能家居开始的地方,也是DIY爱好者,制造者甚至专业设计师遇到他们的第一个问题的地方。许多便宜的传感器,如加速计,力传感器,应变计和压力传感器都是围绕电...


为物联网程序存储器应用选择和使用正确的闪存技术

随着IoT节点变得越来越强大,处理需求可能会增加到需要完整的嵌入式操作系统(OS)(如Linux)才能正确管理所有运行任务的复杂性的水平。尽管将此代码存储在闪存microSDHC卡上很方便,但大...


使用RS-485和电流回路接口实现可靠的工业连接

尽管蓝牙,以太网和其他连接选项广泛普及并支持高数据速率,但工业应用设计人员仍然需要确保以最低的成本获得最可靠的连接。他们还必须在安装的连接选项基础范围内工作。 由于这些原...