当前位置: 首页 > 编程笔记 >

iOS仿小红书呼吸灯动画(核心动画和定时器)两种方式实现

夏令秋
2023-03-14
本文向大家介绍iOS仿小红书呼吸灯动画(核心动画和定时器)两种方式实现,包括了iOS仿小红书呼吸灯动画(核心动画和定时器)两种方式实现的使用技巧和注意事项,需要的朋友参考一下

最近公司需求做个类似小红书的标签呼吸灯动画,经过一段时间研究使用两种方式实现了该效果...

第一种方式使用定时器加 UIView动画,核心方法如下

-(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 Core Animation: Advanced Techniques 的中文译本,翻译自:iOS Core Animation: Advanced Techniques 。

  • 本文向大家介绍Silverlight实现跑马灯动画,包括了Silverlight实现跑马灯动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Silverlight实现跑马灯效果的具体代码,供大家参考,具体内容如下 主要功能有以下几点: 1、使用动画属性驱动图片运动动画 2、图片循环到最后一张后会自动循环 3、当鼠标放到图片时运动的图片会停止,当鼠标离开时暂停的图片会继续运动 4、当

  • 本文向大家介绍Android 动画实现几种方案,包括了Android 动画实现几种方案的使用技巧和注意事项,需要的朋友参考一下 Android 动画实现几种方案 在 Android 的 FrameWork 中,为我们提供三种动画的实现方式:逐帧(Frame)动画、视图/补间动画(View Animation)和属性动画(Property Animation)。由于,这三种动画的实现方式和针对面不一

  • 动画控制器 动画控制器允许你为一个角色或其他游戏对象安排和维护一组动画。 控制器引用了动画剪辑,并且使用 状态机 来管理各种动画状态和它们之间的转换,可以把状态机认为是一种流程图,或者是一段在 Unity 中用可视化编程语言编写的简单程序。 下面的章节涵盖了 动画系统 Mecanim 提供的控制和序列化动画的主要功能。

  • 本文向大家介绍IOS等待时动画效果的实现,包括了IOS等待时动画效果的实现的使用技巧和注意事项,需要的朋友参考一下 查询时间或长或短,为了提升用户体验,目前用的比较多的手段之一就是查询等待时添加一个动态等待效果。当我们在请求网络时加载页面时有个动作效果,效果图如下: 源代码可以网上找开源项目Coding.net,上面的效果原理为两张图片组合,外面那个则为动画转动,里面的图标则是透明度的变化;主要代

  • 无单位数值 如果原始值具有单位,则它将自动添加到动画值中。 Type Example Number translateX: 250 anime({ targets: '.unitless-values-demo .el', translateX: 250, // -> '250px' rotate: 540 // -> '540deg' }); 有单位数值 强制动画使用某个单位并自动转