ユーザーが画像をパンおよびズームできるアプリケーションがあります。あまり問題なく、ユーザーは画像の一部にズームインした状態になり、すべてを「基本状態」にリセットしたいと思うでしょう (つまり、すべての翻訳とそれぞれ 0 と 1 に再スケーリングします)。
私は翻訳を行っています:
- (void)panGestureRecognized:(UIPanGestureRecognizer *)recognizer
{
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}
これで問題なく動作し、画像を翻訳できます。
ボタンを押すと、翻訳を 0,0 に戻せるようにしたいと考えています。これを行う 1 つの方法は、次のように、ジェスチャ レコグナイザーを保存し、それをゼロに戻すことです。
mPanRecognizer.view.center = CGPointMake(mPanRecognizer.view.center.x,
mPanRecognizer.view.center.y);
[mPanRecognizer setTranslation:CGPointMake(0,0) inView:self.view];
mPanRecognizer は、レコグナイザーを格納するメンバー変数です。ただし、これを行うと、実際の動作の変更はなく、次のログ情報が生成されます。
Ignoring call to [UIPanGestureRecognizer setTranslation:inView:] since gesture recognizer is not active.
では、ボタンを押してジェスチャをリセットして 0,0 に変換するにはどうすればよいでしょうか?