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)

用户喜欢...

在智能手机上实现 1 Gbps RF 前端的简单方法

有人可能会问,我们为什么需要 1 Gbps 的下载速度?当前的下载速度还不够快吗?让我们面对现实吧:我们都讨厌看到手机上旋转的缓冲符号,而且我们总是想要更多数据。运营商也希望用户有...


云计算使用不断增长

究竟何为云计算?最简单的解释是,它是一种基于互联网的服务,提供对共享计算资源(例如存储、服务器、网络、应用、服务)的按需访问,还可将数据传输到连网的设备。使用这些服务,用...


直接数字合成器 (DDS) 的基础知识及其选择和使用方式

随着无线设备数量的激增,设计人员正在使用越来越复杂多变的波形,来满足应用在数据速率、干扰抑制、成本、封装和低功耗方面的要求。这些波形需要有稳定的射频源:可以根据需要进行调...


实现5G新型无线电大规模MIMO系统

大规模MIMO依赖于使用大量天线,是实现必要改进的关键技术,以证明从4G到5G无线网络的演进是合理的。 正在定义第五代(5G)无线接入网络,以满足2020年及以后的容量需求的持续增长,并解决...


使用无刷DC驱动器设计的六种奇怪方法

我已经知道了两个绝对真理。首先,无刷直流电机驱动器很酷。每个人都喜欢旋转电机的快感,无刷直流电机通过高速,高功率和高效率来提升令人惊叹的因素。其次,工程师喜欢有创意。有时...


应用最新的CAN总线增强功能,实现安全可靠的高速汽车通信

设计人员多年来一直依赖控制器局域网(CAN)来实现汽车各子系统和电子控制单元(ECU)之间的可靠通信。然而,随着机载网络节点的数量增加,所需的数据吞吐量以及对更低延迟和更高级安...


射频收发器在数字波束合成相控阵中实现强制杂散去相关性

在大型数字波束合成天线中,人们非常希望通过组合来自分布式波形发生器和接收器的信号这一波束合成过程改善动态范围。如果关联误差项不相关,则可以在噪声和杂散性能方面使动态范围提...


使用LDPC编码处理5G NR DL-SCH和UL-SCH传输块

该示例突出显示了用于5G NR下行链路和上行链路共享传输信道(DL-SCH和UL-SCH)的低密度奇偶校验(LDPC)编码链。 共享通道参数 该示例使用DL-SCH来描述处理,其也适用于UL-SCH。 选择在下行链路共...


使用毫米波雷达套件快速开发精密目标检测设计

设计人员在设计运动传感器时面临着持续的竞争压力。传感器不仅要体积更小、更精确,并且还要在智能建筑、工厂自动化、交通运输和无人机等多种行业应用中具有更远的检测范围。虽然毫米...


Arduino 环境中的 FPGA:使用 Alorium 的 Snō 模块支持预配置和定制 IP

当固件在微控制器或微处理器上的运行速度过慢时,现场可编程门阵列 (FPGA) 可解决实时嵌入式设计的硬件问题。同时,FPGA 还具有外设灵活性。然而,要使用 FPGA,设计工程师就需要学习全新的...