UIPanGestureRecognizer を使用して画面上でオブジェクトを移動しようとしています。私のパニング コードは正常に動作しているようです。オブジェクトを簡単に移動できます。しかし、オブジェクトを離すと元の位置に戻ります。パンした場所にとどまりません。
パン可能なオブジェクトはシンプルな UIView で、メインの self.view フィールド内を移動しています。たとえば、viewDidLoad のコードで手動ではなく、XCode のオブジェクト パレットを使用して UIPanGesture を追加しました。
state = started で、トランスフォームを適用してスケールを少し上げます。(これも機能していないようですが、それは別の話です)。
誰が私が間違っているのか教えてもらえますか?
- (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;
}
}
前もって感謝します。:-)