如何在 Swift 中多次为 UIView 的翻转设置动画

Posted

技术标签:

【中文标题】如何在 Swift 中多次为 UIView 的翻转设置动画【英文标题】:How do I animate a flip of a UIView multiple times in Swift 【发布时间】:2017-07-30 00:06:32 【问题描述】:

我想多次翻转UIButton 上的图像。即旋转门式动画。我不在乎它是否翻转了一定次数或一段时间

现在我可以翻转一次,使用以下代码:

UIView.transition(with: thisButton, duration: 0.2, options: .transitionFlipFromTop, animations: 
    thisButton.setImage(myButtonImage, for: .normal)
, completion: nil)

【问题讨论】:

你也可以设置重复次数来控制它! 【参考方案1】:

尝试将.repeat 添加到您的选项中

UIView.transition(with: thisButton, duration: 0.2, options: [.transitionFlipFromTop,.repeat], animations: 
    thisButton.setImage(myButtonImage, for: .normal)
, completion: nil)

希望对你有帮助

【讨论】:

【参考方案2】:

Reinier 的回答可以让它永远重复下去。

为了让它在一段时间后停止,我添加了thisButton.layer.removeAllAnimations()

所以下面的代码一起工作:

UIView.transition(with: thisButton, duration: 0.1, options: [.transitionFlipFromTop,.repeat], animations: 
    thisButton.setImage(myButtonImage, for: .normal)
, completion: nil)

let delayTime = DispatchTime.now() + 0.5
DispatchQueue.main.asyncAfter(deadline: delayTime) 
    thisButton.layer.removeAllAnimations()

【讨论】:

以上是关于如何在 Swift 中多次为 UIView 的翻转设置动画的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 2.0 中获得正确的 UIView 大小或边界?

如何在 iOS 中为两个 UIView 翻转设置动画?

Swift:如何通过按住按钮来逐步调整 UIView 的大小

UIView翻转动画

如何使用 UIView 创建自定义翻转动画

Swift Xib UiView BottomSheet 被多次调用