Swift:链式 UIView 动画永远重复? Obj-C 代码不可移植
Posted
技术标签:
【中文标题】Swift:链式 UIView 动画永远重复? Obj-C 代码不可移植【英文标题】:Swift: chain UIView animations that repeat forever? Obj-C code not portable 【发布时间】:2015-05-06 14:45:34 【问题描述】:This post 描述了如何在 Objective-C 中链接重复的 UIView 动画。但是,它需要 performSelector
,这在 Swift 中似乎不可用。
如何在 Swift 中链接重复的 UIView 动画?目标是创建一个动画来摇晃/摆动 UIView。
【问题讨论】:
您是否尝试过使用animateWithDuration
制作动画,然后将options
块设置为.Repeat
?
是 @CeceXX 但是 .Repeat 意味着其他动画永远不会被调用,因为完成块永远不会被调用。
你不能把你的代码放在一个函数中,然后在完成块中调用这个函数吗?
为什么反对票???
我同意@Crashalot 我不知道为什么会反对??这是一个非常有效的问题,不,下面的答案不能回答这个问题——如果你使用 .Repeat 动画——永远不会调用完成块!!就像作者所说.如果有人知道如何重复已经链接的动画,那么请回答
【参考方案1】:
怎么样:
var wobble = true
func wobbleLeft()
if !wobble
return
UIView.animateWithDuration(0.5, animations: () -> Void in
// Animate wobble to left
) (finished) -> Void in
self.wobbleRight()
func wobbleRight()
if !wobble
return
UIView.animateWithDuration(0.5, animations: () -> Void in
// Animate wobble to right
) (finished) -> Void in
self.wobbleLeft()
首先调用wobbleLeft()
,完成后它会调用wobbleRight()
。要停止摆动,只需设置wobble = false
【讨论】:
这个序列如何重复?感谢您的帮助!以上是关于Swift:链式 UIView 动画永远重复? Obj-C 代码不可移植的主要内容,如果未能解决你的问题,请参考以下文章