0

我正在使用CGAffineTransformMakeTranslationwithUIPanGestureRecognizer来平移 UIView。

CGAffineTransformMakeTranslation是取 delta x 和 delta y 还是新位置的绝对值?这是我所拥有的:

- (void)swipeDetected:(UIPanGestureRecognizer *)recognizer
{

    CGPoint newTranslation = [recognizer translationInView:self.view];
    self.navController.view.transform = CGAffineTransformMakeTranslation(newTranslation.x, 0);
    .....
}

这从左到右起作用,但不是从右到左。我很确定“翻译”是指 delta x 和 delta y,而不是绝对值。

有什么建议么?

谢谢

4

1 回答 1

3

设置变换是一个即时操作,因为它只是视图位置的矩阵乘法。

如果您需要从当前位置恢复,可以将变换保存到 ivar,并使用逆变换,即:

_currentTransform = CGAffineTransformMakeTranslation(newTranslation.x, 0);

然后:

CGAffineTransform inverse = CGAffineTransformInvert(_currentTransform);

如果您想删除所有转换,您可以执行self.transform = CGAffineTransformIdentity

希望这可以帮助!

于 2012-05-17T14:47:58.277 回答