我想在我的tableView
空白时添加动画。
我有两个单独的图像:
1)一行,
2)风滚草
我认为以这种方式制作动画会很棒:
持续10-15秒,只出现一条线,然后从右侧出现风滚草,并在几秒钟内向左侧滚动。
我制作了一个gif并下载了一个框架,允许在UIImageView
中显示gif。
它很有效,但质量很差,不像其他一切那么顺畅。
所以我在想,是否有可能在swift本身制作动画?
或者你有什么建议?任何建议都会有所帮助。
由于
答案 0 :(得分:2)
对于这种动画,你也可以使用这种方法:
UIImageView
UIImageView
以下是旋转UIImageView
的扩展(您可以将类从UIImageView更改为UIView):
extension UIImageView {
func rotateImage360Degrees(duration: CFTimeInterval = 2) {
let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
rotateAnimation.fromValue = 0.0
rotateAnimation.toValue = CGFloat(Double.pi * 2)
rotateAnimation.isRemovedOnCompletion = false
rotateAnimation.duration = duration
rotateAnimation.repeatCount = Float.infinity
self.layer.add(rotateAnimation, forKey: nil)
}
func rotateImage360DegreesInReverse(duration: CFTimeInterval = 2) {
let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
rotateAnimation.fromValue = CGFloat(Double.pi * 2)
rotateAnimation.toValue = 0.0
rotateAnimation.isRemovedOnCompletion = false
rotateAnimation.duration = duration
rotateAnimation.repeatCount = Float.infinity
self.layer.add(rotateAnimation, forKey: nil)
}
}
UIView.animate
块中的翻译动画:
func animateImageView(){
UIView.animate(withDuration: 3.0, delay: 0.0, options: ([.curveLinear]), animations: {() -> Void in
self.yourImageView.transform = CGAffineTransform.init(translationX: self.view.bounds.size.width, y: self.yourImageView.bounds.origin.y)
}, completion: { _ in
self.yourImageView.transform = .identity
self.animateImageView() // For continuous animation
})
}