iOS-各种动画特效

概述

广播跑马灯/弹幕/直播点赞/烟花/雪花等动画特效, 后续增加~

详细

661F567F-3399-4227-ACCD-3C0FB6EB966D.png

一、实现功能

  • 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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值