学习Swift并在今天遇到这个问题:
我有3张图片,我为其创建了出口:
@IBOutlet weak var bookImageView: SpringImageView!
@IBOutlet weak var sketchImageView: SpringImageView!
@IBOutlet weak var xcodeImageView: SpringImageView!
当我点击按钮动作learnButtonDidTouch
时,我想让它们动画:
bookImageView
马上
sketchImageView
0,2延迟
xcodeImageView
0,2延迟
在我的搜索过程中,我只找到了使用UIView.animationWithDuration
的代码,但我还没有完全理解为什么我不能直接在我的ImageView上使用.animationWithDuration
。这里的替代方案是什么?使用.animate()
或.animation
时无法找到任何内容,因此我猜我必须在.animationWithDuration
上使用UIView
。但在这种情况下我该怎么办呢?
这是我按下按钮时的代码:
@IBAction func learnButtonDidTouch(sender: AnyObject) {
sketchImageView.animation = "pop"
xcodeImageView.animation = "pop"
bookImageView.animation = "pop"
sketchImageView.animate()
xcodeImageView.animate()
bookImageView.animate()
}
答案 0 :(得分:0)
animateWithDuration
有一个completionHandler:
。在第一个动画的完成处理程序中,执行第二个动画;在第二个动画的完成处理程序中,执行第三个动画。
此外,animateWithDuration
有一个delay
参数,因此您可以轻松延迟第二个和第三个动画。
答案 1 :(得分:0)
你绝对可以使用UIView.animateWithDuration。下面是一些代码。
UIView.animateWithDuration(0.2, delay: 0, options: nil, animations: { () -> Void in
//bookImageView animation
}, completion:
UIView.animateWithDuration(0.2, delay: 0, options: nil, animations: { () -> Void in
//sketchImageView animation
}, completion:
UIView.animateWithDuration(0.2, delay: 0, options: nil, animations: { () -> Void in
//xcodeImageView animation
}, completion: nil )
)
)