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

2025-05-29 0 27

网上找了几个,但都有cup暴涨的情况发生,于是利用CABasicAnimation 简单的实现一个跑马灯,实现简单,可自己定制

?

1

2

3

4

5

6
#import <UIKit/UIKit.h>

@interface LoopView : UIView

@property(nonatomic,strong)NSString *Iformation;

@property(nonatomic,strong)NSString *Image;

@end

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70
#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"];

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 iOS使用 CABasicAnimation 实现简单的跑马灯(无cpu暴涨) https://www.kuaiidc.com/90589.html

相关文章

发表评论
暂无评论