本篇文章主要介绍了iOS仿小红书呼吸灯动画(核心动画和定时器)两种方式实现,非常具有实用价值,需要的朋友可以参考下
最近公司需求做个类似小红书的标签呼吸灯动画,经过一段时间研究使用两种方式实现了该效果...
-(void)begigFlashAnimation {
// 缩放 + 透明度动画
self.flashView.transform = CGAffineTransformMakeScale(0.1, 0.1);
[UIView animateWithDuration:3 animations:^{
self.flashView.transform = CGAffineTransformMakeScale(1,1);
self.flashView.alpha = 1.0;
[UIView beginAnimations:@"flash" context:nil];
[UIView setAnimationDuration:2];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
self.flashView.alpha = 0;
[UIView commitAnimations];
}];
}
第二种方式使用核心动画的动画组,核心方法如下
- (CAAnimationGroup *)groups {
if (!_groups) {
// 缩放动画
CABasicAnimation * scaleAnim = [CABasicAnimation animation];
scaleAnim.keyPath = @"transform.scale";
scaleAnim.fromValue = @0.1;
scaleAnim.toValue = @1;
scaleAnim.duration = 2;
// 透明度动画
CABasicAnimation *opacityAnim=[CABasicAnimation animationWithKeyPath:@"opacity"];
opacityAnim.fromValue= @1;
opacityAnim.toValue= @0.1;
opacityAnim.duration= 2;
// 创建动画组
_groups =[CAAnimationGroup animation];
_groups.animations = @[scaleAnim,opacityAnim];
_groups.removedOnCompletion = NO;
_groups.fillMode = kCAFillModeForwards;
_groups.duration = 2;
_groups.repeatCount = FLT_MAX;
}
return _groups;
}
对比两种方法,第一种方法需要使用定时器,第二个则不需要,不知道这样是否第二个性能性对来说会好点呢?
github项目地址:https://github.com/Caiflower/XXTwinkleView.git
demo下载:XXTwinkleView_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:iOS仿小红书呼吸灯动画(核心动画和定时器)两种方式实现
猜你喜欢
- SurfaceView播放视频发送弹幕并实现滚动歌词 2023-01-02
- 作为iOS开发,这道面试题你能答出来,说明你基础很OK! 2023-09-14
- Android studio实现动态背景页面 2023-05-23
- 最好用的ios数据恢复软件:PhoneRescue for Mac 2023-09-14
- Flutter实现底部和顶部导航栏 2022-08-31
- Android实现轮询的三种方式 2023-02-17
- Android实现监听音量的变化 2023-03-30
- Android MaterialButton使用实例详解(告别shape、selector) 2023-06-16
- 详解flutter engine 那些没被释放的东西 2022-12-04
- iOS 对当前webView进行截屏的方法 2023-03-01
