我有一个允许用户平移和放大图像的应用程序。我认为,没有太多麻烦,用户可以让自己进入放大到图像的一部分的状态,并希望将所有内容重置为“基本状态”(即,将所有的翻译和分别重新缩放回 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。一种方法似乎是存储手势识别器并将其设置回零,如下所示:
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?