我正在尝试使用 UIPanGestureRecognizer 在屏幕上移动对象。我的平移代码似乎工作正常。我可以轻松地移动我的对象。但是当我放开物体时,它会弹回原来的位置;它不会停留在我平移它的位置。
pan-able 对象是一个简单的 UIView,它在我的主 self.view 字段中移动。例如,我使用 XCode 中的对象腭添加了 UIPanGesture,而不是在 viewDidLoad 中的代码中手动添加。
在状态 = 开始时,我应用了一个变换来稍微提高比例。(这似乎也不起作用,但那是另一回事)。
谁能告诉我哪里出错了?
- (IBAction)bucketTouch:(UIPanGestureRecognizer *)recognizer {
switch ([recognizer state]) {
case UIGestureRecognizerStateBegan:{
[UIView animateWithDuration:.2 animations:^{
self.pail.transform = CGAffineTransformMakeScale(1.25, 1.25);
}];
}
break;
case UIGestureRecognizerStateChanged:{
CGPoint centerPoint = self.pail.center;
CGPoint newPoint = [recognizer translationInView:self.view];
CGPoint finalPoint = CGPointMake(centerPoint.x + newPoint.x, centerPoint.y + newPoint.y);
self.pail.center = finalPoint;
[recognizer setTranslation:CGPointZero inView:self.view];
}
break;
case UIGestureRecognizerStateEnded:{
[self.view sendSubviewToBack:self.pail];
[UIView animateWithDuration:.2 animations:^{
self.pail.transform = CGAffineTransformIdentity;
}];
}
break;
default:
break;
}
}
提前致谢。:-)