概述
广播跑马灯/弹幕/直播点赞/烟花/雪花等动画特效, 后续增加~
详细
一、实现功能
-
1. 广播跑马灯
-
2. 弹幕动画
-
3. 直播点赞动画
-
4. 直播点赞图片动画
-
5. 烟花动画
-
6. 雪花动画
二、程序实现
1. 广播动画特效:
思路:
1. 初始化广播视图
2. 设置广播公告广告内容
3. 添加动画效果
初始化广播视图, 广播活动标题按钮 与 广播活动标题标签 控件大小一样
/**
* 设置广播视图
*/
- (void)setupBroadcastingView {
// 设置广播活动标题按钮
UIButton *activityBtn = [UIButton buttonWithType:UIButtonTypeCustom];
activityBtn.frame = CGRectMake(0, 64, [UIScreen mainScreen].bounds.size.width, 30);
activityBtn.backgroundColor = [UIColor clearColor];
[activityBtn addTarget:self action:@selector(activityDetail) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:activityBtn];
self.activityBtn = activityBtn;
// 设置广播活动标题文字
UILabel *activityLb = [[UILabel alloc] init];
activityLb.frame = activityBtn.bounds;
[activityLb setFont:[UIFont boldSystemFontOfSize:14]];
[activityLb setTextColor:[UIColor colorWithRed:115/255.0 green:125/255.0 blue:134/255.0 alpha:1.0]];
[activityLb setBackgroundColor:[UIColor clearColor]];
[activityBtn addSubview:activityLb];
self.activityLb = activityLb;
// 设置广播logo
UIImageView *speaker = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"broadcasting"]]];
speaker.frame = CGRectMake(0, 5, 20, 20);
speaker.backgroundColor = self.view.backgroundColor;
[activityBtn addSubview:speaker];
// 设置广播公告广告内容
[self setActivityButtonTitle];
}
设置广播公告广告内容, 这里是以假数据填充,一般需求会是后台请求得来的活动内容.
添加动画效果: 当文字内容超过显示区域就滚动展示,未超过则居中展示.
/**
* 设置广播公告广告内容
*/
- (void)setActivityButtonTitle {
// 广播公告广告内容(假数据)
NSString *title = @"广播公告广告内容(ZL测试内容)广播公告广告内容(测试内容)\r\n广播公告广告内容(测试内容)广播公告广告内容(测试内容)广播公告广告内容(测试内容)";
title = [title stringByReplacingOccurrencesOfString:@"\r\n" withString:@" "];
[self.activityLb setText:title];
[self.activityLb sizeToFit];
if (self.activityLb.frame.size.width <= self.activityBtn.frame.size.width) {
[self.activityLb setCenter:CGPointMake(self.activityBtn.frame.size.width/2, self.activityBtn.frame.size.height/2)];
} else { // 当文字内容超过显示区域就滚动展示
CGRect frame = self.activityLb.frame;
frame.origin.x = self.activityBtn.frame