Swift 从右向左移动图像而不是从左向右移动图像
Swift move image from right to left than from left to right
我想制作一个将背景图像从右向左移动而不是从左向右移动的动画。
我使用此代码但不起作用
UIView.animate(withDuration: 5, delay: 0, options: .repeat ,animations: { () -> Void in
imageView.transform = CGAffineTransform(translationX: -imageView.frame.width + self.view.bounds.width, y: 0)
UIView.animate(withDuration: 5, delay: 1, options: .repeat ,animations: { () -> Void in
imageView.transform = CGAffineTransform(translationX: +imageView.frame.width - self.view.bounds.width, y: 0)
})
})
如果您想使用旧版 animate(withDuration:animations:)
API,请使用以下代码。但是,您需要等待第一个动画完成 - 这意味着您必须使用 completion
块。
但是,您的 translationX
值也没有意义。
UIView.animate(withDuration: 1, animations: {
self.imageView.transform = CGAffineTransform(translationX: -self.imageView.frame.width, y: 0)
}) { _ in
UIView.animate(withDuration: 1) {
self.imageView.transform = CGAffineTransform.identity
}
}
我强烈建议您看看 "new" 制作动画的方法:UIViewPropertyAnimator
(https://developer.apple.com/documentation/uikit/uiviewpropertyanimator)
我用这个解决了
UIView.animate(withDuration: 30.0, delay: 0, options: [.repeat, .autoreverse], animations: {
imageView.transform = CGAffineTransform(translationX: -imageView.frame.width + self.view.bounds.width, y: 0)
}, completion: nil)
我想制作一个将背景图像从右向左移动而不是从左向右移动的动画。 我使用此代码但不起作用
UIView.animate(withDuration: 5, delay: 0, options: .repeat ,animations: { () -> Void in
imageView.transform = CGAffineTransform(translationX: -imageView.frame.width + self.view.bounds.width, y: 0)
UIView.animate(withDuration: 5, delay: 1, options: .repeat ,animations: { () -> Void in
imageView.transform = CGAffineTransform(translationX: +imageView.frame.width - self.view.bounds.width, y: 0)
})
})
如果您想使用旧版 animate(withDuration:animations:)
API,请使用以下代码。但是,您需要等待第一个动画完成 - 这意味着您必须使用 completion
块。
但是,您的 translationX
值也没有意义。
UIView.animate(withDuration: 1, animations: {
self.imageView.transform = CGAffineTransform(translationX: -self.imageView.frame.width, y: 0)
}) { _ in
UIView.animate(withDuration: 1) {
self.imageView.transform = CGAffineTransform.identity
}
}
我强烈建议您看看 "new" 制作动画的方法:UIViewPropertyAnimator
(https://developer.apple.com/documentation/uikit/uiviewpropertyanimator)
我用这个解决了
UIView.animate(withDuration: 30.0, delay: 0, options: [.repeat, .autoreverse], animations: {
imageView.transform = CGAffineTransform(translationX: -imageView.frame.width + self.view.bounds.width, y: 0)
}, completion: nil)