我需要在点击屏幕时使UIImageView动画显示,然后在它到达顶部时向下返回。
这是我目前的代码:
override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) {
if (CGRectIntersectsRect(self.playerImagePhone.frame, self.floorImagePhone.frame)) {
UIView.animateWithDuration(0.4) {
self.playerImagePhone.center = CGPointMake(self.playerImagePhone.center.x, self.playerImagePhone.center.y - 50)
println("player jumped")
}
}
}
override func touchesEnded(touches: NSSet!, withEvent event: UIEvent!) {
UIView.animateWithDuration(0.4) {
self.playerImagePhone.center = CGPointMake(self.playerImagePhone.center.x, self.playerImagePhone.center.y + 50)
println("player jumped")
}
}
此代码正在努力使其上升然后退回但问题是它允许用户将手指放在屏幕上并且图像将保持不变。一旦图像上升完成,我怎样才能将其关闭?
由于
答案 0 :(得分:1)
touchesBegan可以经常被调用...在那里执行你的动画可能不是一个好主意。你可能想要更新一个保持动画的单独对象,然后一旦完成动画(一旦持续时间结束),你就会运行另一个动画来恢复图像。
作为替代方案,您也可以使用animateWithDuration:animations:completion:并在完成块中调用向下动画。