作家
登录

终于iOS11里,我们拥有了傻瓜化的交互式动画

作者: 来源: 2017-11-07 15:49:17 阅读 我要评论


回想

答:交互式动画和自定义的timingFunction动画。

无code无本相。我们先来看看起初版本的动画接口是若何实现交互式动画和自定义timingFunciton的。

终于iOS11里,我们拥有了傻瓜化的交互式动画

为什么这两个属性异常重要。这里,我须要给大年夜家介绍一个国外异常风行的app。Principle

若何实现一个交互式动画?

大年夜家知道,iOS琅绫擎动画的实现方法主如果两种,一种是UIViewAnimation和基于Layer层的CAAnimation。

两种动画的差别很多,当然,相符越底层的接口自由度越高的┞封个特点。CAAnimation的可定制性更强,然则在我看来,两种动画最重要的差别用一句话形容,就是.

我们如今,就来实现一个用手势控制的动画。效不雅如图。

终于iOS11里,我们拥有了傻瓜化的交互式动画

我们的目标是应用UISlider控制动画的进度,这个动画就是图片绕Y轴扭转。

代码如下。

  1. class ViewController: UIViewController { 
  2.      
  3.      let imageView = UIImageView.init(frame: CGRect.init(x: 0, y: 0, width: 100, height: 100)) 
  4.  
  5.     override func viewDidLoad() { 
  6.         super.viewDidLoad() 
  7.          
  8.         imageView.image = UIImage.init(named: "wuyanzu.jpg"
  9.         imageView.center = self.view.center 
  10.         imageView.layer.transform.m34 = -1.0/500 
  11.         self.view.addSubview(imageView) 
  12.          
  13.         let basicAnimation = CABasicAnimation.init(keyPath: "transform.rotation.y"
  14.         basicAnimation.fromValue = 0 
  15.         basicAnimation.toValue = CGFloat.pi 
  16.         basicAnimation.duration = 1 
  17.         imageView.layer.add(basicAnimation, forKey: "rotate"
  18.         imageView.layer.speed = 0 
  19.         // Do any additional setup after loading the view, typically from a nib. 
  20.     } 
  21.  
  22.     @IBAction func sliderValueChanged(sender:UISlider) { 
  23.         imageView.layer.timeOffset = CFTimeInterval(sender.value) 
  24.     } 
  25.  

在iOS11之前,可交互动画的道理很简单。过程总结如下。

  1. 将layer的speed设置为0,如许,动画就处于暂停状况
  2. 应用timeOffset来控制全部动画的进度

再举个例子,如不雅这个动画不是应用UISlider控制扭转角度,而是应用PanGesture移动的距朗攀来控制呢?

那么这种情况,你须要找到的就是手势的距离和Rotate动画timeOffset的一种接洽关系。

我应用Sketch做了一个简陋的草图来模仿这种情况。

 1/5    1 2 3 4 5 下一页 尾页

  推荐阅读

  Python转JavaScript编译器,天了噜!还能转代码,到底怎么做到的

为懂得决这个问题,Transcrpyt支撑别号章一ㄅ念。当在Python中应用<string>.split时,就会被翻译成一个具有Python的split语义的JavaScript函数<string>.py_split。在原生JavaScript代铝闼楝split指代的>>>详细阅读


本文标题:终于iOS11里,我们拥有了傻瓜化的交互式动画

地址:http://www.17bianji.com/lsqh/38570.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)