视图自己定义旋转动画 相似百度音乐

视图自己定义旋转动画 相似百度音乐

大家好,又见面了,我是全栈君。

@interface FirstViewController ()

@property (nonatomic,assign)BOOL isplay;

@end

@implementation FirstViewController

@synthesize isplay;

– (void)viewDidLoad

{

    [super viewDidLoad];

    isplay = NO;

    //圆角

    self.imgview.layer.cornerRadius = 150.0 / 2.0;

    self.imgview.layer.masksToBounds = YES;

    

    //加入动画

    CABasicAnimation *monkeyAnimation = [CABasicAnimation animationWithKeyPath:@”transform.rotation.z”];

    monkeyAnimation.toValue = [NSNumber numberWithFloat:2.0 *M_PI];

monkeyAnimation.duration = 1.5f;

monkeyAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];

    monkeyAnimation.cumulative = NO;

    monkeyAnimation.removedOnCompletion = NO; //No Remove

    monkeyAnimation.repeatCount = FLT_MAX;

[self.imgview.layer addAnimation:monkeyAnimation forKey:@”AnimatedKey”];

    [self.imgview stopAnimating];

    

    // 载入动画 但不播放动画

    self.imgview.layer.speed = 0.2;

    

}

– (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

//開始动画

– (IBAction)startAnimate:(id)sender {

    if (!isplay) {

        isplay = YES;

        self.imgview.layer.speed = 1.0;

        self.imgview.layer.beginTime = 0.0;

        CFTimeInterval pausedTime = [self.imgview.layer timeOffset];

        CFTimeInterval timeSincePause = [self.imgview.layer convertTime:CACurrentMediaTime() fromLayer:nil] – pausedTime;

        self.imgview.layer.beginTime = timeSincePause;

    }

    

    

}

//停止动画并保存当前的角度

– (IBAction)stioAnimate:(id)sender {

    if (isplay) {

        isplay = NO;

        CFTimeInterval pausedTime = [self.imgview.layer convertTime:CACurrentMediaTime() fromLayer:nil];

        self.imgview.layer.speed = 0.0;

        self.imgview.layer.timeOffset = pausedTime;

    }

}

@end

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115597.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat for mysql15 激活码-激活码分享[通俗易懂]

    (navicat for mysql15 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsa…

    2022年3月26日
    216
  • 惠普台式机如何装系统_惠普的台式机如何用u盘安装系统

    惠普台式机如何装系统_惠普的台式机如何用u盘安装系统惠普在计算机行业是一个很有声誉的品牌,无论是台式机还是笔记本,惠普都是一款值得考虑和购买的品牌产品之一。但是当计算机系统出了问题需要重装系统时,很多人并不知道如何进行系统的重装,那么惠普的台式机如何进行重装系统呢?下面介绍一下台式小机惠普电脑怎么装系统。惠普电脑装系统步骤阅读1、打开浏览器搜索云骑士官网,找到云骑士官网并点击打开。2、在官网下载云骑士一键重装系统软件,下载后打开云骑士装机大师。3、…

    2022年8月13日
    6
  • Vue学习之样式处理

    Vue学习之样式处理Vue学习之样式处理

    2022年4月23日
    34
  • 5G基站产业链(5g基站天线安装视频)

    来源:国信证券5G宏基站数的翻倍增长及技术演进带来基站天线成倍增长空间。5G关键性能指标十倍的增长需要基站数翻倍增长以支撑。5G的三个关键的效率需求包括频谱利用效率、能耗…

    2022年4月17日
    98
  • VUE双向绑定原理_vue的数据绑定怎么实现

    VUE双向绑定原理_vue的数据绑定怎么实现烂大街原理:数据劫持+发布订阅者模式(obect.defineProperty())……..(此处省略8888个字节)。话不多说上代码HTML:<divid=”app”> <div> <divv-text=”myText”></div> <divv-text=”myBox”></d…

    2022年9月14日
    2
  • 路径规划-人工势场法(Artificial Potential Field)

    路径规划-人工势场法(Artificial Potential Field)人工势场法是局部路径规划的一种比较常用的方法。这种方法假设机器人在一种虚拟力场下运动。1.简介如图所示,机器人在一个二维环境下运动,图中指出了机器人,障碍和目标之间的相对位置。这个图比较清晰的说明了人工势场法的作用,物体的初始点在一个较高的“山头”上,要到达的目标点在“山脚”下,这就形成了一种势场,物体在这种势的引导下,避开障碍物,到达目标点。人工势场包括引力场合斥力场,其中目标点对物体产生引力,引导物体朝向其运动(这一点有点类似于A*算法中的启发函数h)。障碍物对物体产生斥力,..

    2022年6月22日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号