【发布时间】:2015-09-03 06:57:51
【问题描述】:
我有一个具有 panGesture 功能的视图,但我需要以编程方式将平移手势从一个点发送到另一个点。有没有办法使用具有特定时间间隔的动画快速做到这一点?这是我尝试以编程方式调用平移手势:
var upPanPoint = CGPoint(x: contentView.center.x, y: contentView.center.y + 500)
var upPan = panGestureRecognizer.setTranslation(upPanPoint, inView: self)
onSwipe(upPan)
这是识别平移手势的代码:
func onSwipe(panGestureRecognizer : UIPanGestureRecognizer!) {
let view = panGestureRecognizer.view!
print(view)
switch (panGestureRecognizer.state) {
case UIGestureRecognizerState.Began:
if (panGestureRecognizer.locationInView(view).y < view.center.y) {
self.viewState.rotationDirection = .RotationAwayFromCenter
} else {
self.viewState.rotationDirection = .RotationTowardsCenter
}
case UIGestureRecognizerState.Ended:
self.finalizePosition()
default:
let translation : CGPoint = panGestureRecognizer.translationInView(view)
view.center = self.viewState.originalCenter + translation
self.rotateForTranslation(translation, withRotationDirection: self.viewState.rotationDirection)
self.executeOnPanForTranslation(translation)
}
}
【问题讨论】:
-
也许尝试以正确的顺序调用一些
NSView触摸方法。 -
也许你必须将
upPan.state设置为.Changed(或一些不同于.Possible的值,以便你识别它)。
标签: ios swift animation uipangesturerecognizer