直播间点赞动画
#pragma mark - 点赞动画
- (void)praiseAnimation {
UIImageView *imageView = [[UIImageView alloc] init];
CGRect frame = self.view.frame; // 初始frame,即设置了动画的起点
imageView.frame = CGRectMake(frame.size.width - 40, frame.size.height - 65, 30, 30); // 初始化imageView透明度为0 imageView.alpha = 0;
imageView.backgroundColor = [UIColor clearColor];
imageView.clipsToBounds = YES; // 用0.2秒的时间将imageView的透明度变成1.0,同时将其放大1.3倍,再缩放至1.1倍,这里参数根据需求设置 [UIView animateWithDuration:0.2 animations:^{
imageView.alpha = 1.0;
imageView.frame = CGRectMake(frame.size.width - 40, frame.size.height - 90, 30, 30);
CGAffineTransform transfrom = CGAffineTransformMakeScale(1.3, 1.3);
imageView.transform = CGAffineTransformScale(transfrom, 1, 1);
}];
[self.view addSubview:imageView]; // 随机产生一个动画结束点的X值
CGFloat finishX = frame.size.width - round(random() % 200); // 动画结束点的Y值
CGFloat finishY = 200; // imageView在运动过程中的缩放比例
CGFloat scale = round(random() % 2) + 0.7; // 生成一个作为速度参数的随机数
CGFloat speed = 1 / round(random() % 900) + 0.6; // 动画执行时间
NSTimeInterval duration = 4 * speed; // 如果得到的时间是无穷大,就重新附一个值(这里要特别注意,请看下面的特别提醒)
if (duration == INFINITY) duration = 2.412346; // 随机生成一个0~7的数,以便下面拼接图片名
int imageName = round(random() % 8); // 开始动画
[UIView beginAnimations:nil context:(__bridge void *_Nullable)(imageView)]; // 设置动画时间
[UIView setAnimationDuration:duration]; // 拼接图片名字
imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"good%d_30x30_.png",imageName]]; // 设置imageView的结束frame
imageView.frame = CGRectMake( finishX, finishY, 30 * scale, 30 * scale); // 设置渐渐消失的效果,这里的时间最好和动画时间一致 [UIView animateWithDuration:duration animations:^{
imageView.alpha = 0;
}]; // 结束动画,调用onAnimationComplete:finished:context:函数
[UIView setAnimationDidStopSelector:@selector(onAnimationComplete:finished:context:)]; // 设置动画代理
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
}
/// 动画完后销毁iamgeView
- (void)onAnimationComplete:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context{
UIImageView *imageView = (__bridge UIImageView *)(context);
[imageView removeFromSuperview];
imageView = nil;
}
ios 直播间点赞动画相关推荐
- iOS 直播间礼物动画队列
主要用到NSOperation和NSOperationQueue实现动画队列 主要分三个类 animationManager : #import "YGPreGiftAnimationMan ...
- html直播动画,HTML5 直播疯狂点赞动画实现代码 附源码
直播有一个很重要的互动: 为了烘托直播间的氛围,直播相对于普通视频或者文本内容,点赞通常有两个特殊需求: 点赞动作无限次,引导用户疯狂点赞 直播间的所有疯狂点赞,都需要在所有用户界面都 我们先来看效果 ...
- iOS 直播间送礼物逻辑(礼物连击)
iOS 直播间送礼物 先贴demo地址:GitHub demo基本实现了主流直播间礼物的逻辑 按照队列顺序显示用户所送礼物,累加当前礼物,支持同时显示两人的 礼物 先来最终效果图 一句代码调用送礼物 ...
- 疯狂html附源码,科技常识:HTML5 直播疯狂点赞动画实现代码 附源码
今天小编跟大家讲解下有关HTML5 直播疯狂点赞动画实现代码 附源码 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关HTML5 直播疯狂点赞动画实现代码 附源码 的相关资料,希望小伙伴们看 ...
- html5直播源码,HTML5 直播疯狂点赞动画实现代码 附源码
直播有一个很重要的互动:点赞. 为了烘托直播间的氛围,直播相对于普通视频或者文本内容,点赞通常有两个特殊需求: 点赞动作无限次,引导用户疯狂点赞 直播间的所有疯狂点赞,都需要在所有用户界面都动画展现出 ...
- 微信小程序实现直播间点赞飘心效果的示例代码
微信小程序实现直播间点赞飘心效果的示例代码 https://blog.csdn.net/qappleh/article/details/83865874
- 腾讯课堂 H5 直播间点赞动效实现
1. 前言 以前在看微信视频号直播的时候,经常点击右下角的点赞按钮.看着它的数字慢慢从一位数变成五位数,还是挺有氛围感的.特别是长按的时候,有个手机震动的反馈,很带感. 虽然之前很好奇这些飘动的点赞动 ...
- Flutter仿抖音点击进入直播间按钮动画实现
利用flutter仿抖音点击进入直播间动画效果 效果图: 对于这个widget 已经封装成插件 供大家依赖使用 askai_animation_button: ^last version 组件的一些必 ...
- iOS直播间聊天室遇到的问题
Question: 1.刷新直播间消息机制该用哪种方法?哪一种更加合适? 2.聊天室该如何图文混排? 3.聊天室出现特殊字符临界点不换行?高度计算错误? 4.聊天室该如何加载网络图片? 5.聊天室如何 ...
最新文章
- 使用rsync同步网路备份
- VTK:图像透明度用法实战
- Socket网络编程——C++实现
- RPC调用和HTTP调用的区别你知道吗
- Vue 深度监听和初始绑定
- 织梦php网站修改教程,织梦DEDEcms织梦软件模型增加图集功能教程(含修改文件下载)...
- python yield详解
- 转分享[Mac] QQ音乐Mac特别版 可以下载无损
- Windows All 系统下载
- win10自带功能 进行磁盘分区
- PyTorch-04梯度、常见函数梯度、激活函数Sigmoid;Tanh;ReLU及其梯度、LOSS及其梯度、感知机(单层感知机)、感知机2(多输出的)、链式法则、MLP反向传播推导、2D函数优化实例
- 1.6 SSH免密登录
- 承包一座山能做什么_您为什么没有得到最好的承包商,又能做些什么(第2部分)...
- 506 Relative Ranks 相对排名
- SAP - MM - 第2篇 - 物料主数据维护
- html中svg是什么文件,svg是什么文件格式?如何打开svg文件?
- 正则表达式JS-1212
- 西电操作系统上机实验3
- 打造稳定可靠聪明的智慧酒店系统
- Kalibr安装教程
热门文章
- python sasl_Pyhive、SASL和Python 3.5
- ubuntu 中文版 man
- 关于RedisPool配置参数
- 推荐丨全球主要城市TOD数据
- Inmp架构搭建wordpress开源博客
- ARM 编译工具链详解
- 【困难】数字迷宫,找到迷宫中的单词。
- 爬梯:MongoDB入门到高级到SpringBoot-API
- Python当前时间是一年中第几周
- 初识AMD型号CPU