7

UITableView重用机制导致CABasicAnimation动画失效

 3 years ago
source link: https://www.devashen.com/blog/2017/03/02/dong-hua-shi-xiao/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

UITableView重用机制导致CABasicAnimation动画失效

Mar 2nd, 2017 6:24 pm | 评论

开发随记,再给cell上添加一个小动画图片时,遇到一个很蛋疼的问题,动画明明会动,而且退出后台在回来也会动,可就是拉出屏幕外,在回来时,动画失效了,不会动了。以下是动画代码,就是一个简单的摇摆动画

let rotationAnim = CABasicAnimation(keyPath: "transform.rotation.z")
            rotationAnim.toValue = M_PI/5
            rotationAnim.autoreverses = true
            rotationAnim.repeatCount = MAXFLOAT
            rotationAnim.duration = 0.2
            rotationAnim.isRemovedOnCompletion = false
            moveImgv.layer.add(rotationAnim, forKey: nil)

于是就开始看CABasicAnimation的类的属性说明,该设置的都设置了,可还是不行,百度,谷歌,搜狗统统找不到原因,全是CABasicAnimation的简单教程。

无奈至极呀,就开始检查代码,看有没有可以修改的地方,一通乱世只会,在上面代码中的最后一行
moveImgv.layer.add(rotationAnim, forKey: nil)

我发现forkey是nil,可当我给它一个值的时候,

moveImgv.layer.add(rotationAnim, forKey: "moveanimation")
再次调试,却发现重用后,动画终于可以动了,原来我废了那么久的时间,却是这样的问题,真是想哭,又想笑😁。

就是这样的问题,在网上找了好久,却找不到结果,可能是大家都写了key了吧,在此写下这边文章,希望有遇到像我一样的问题的同学可以找到解决办法。

Posted by Ashen

Mar 2nd, 2017 6:24 pmiOS

« 《自我营销七堂课》读书心得 Xcode代码全黑的另一种解决办法 »


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK