0

UIView をパンするためにCGAffineTransformMakeTranslationwithを使用しています。UIPanGestureRecognizer

CGAffineTransformMakeTranslationデルタ x とデルタ y または新しい位置の絶対値を取りますか? ここに私が持っているものがあります:

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

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

これは左から右に機能しますが、右から左には機能しません。「変換」とはデルタ x とデルタ y を意味し、絶対値ではないと確信しています。

助言がありますか?

ありがとう

4

1 に答える 1

3

変換の設定は、ビューの位置の行列乗算にすぎないため、すぐに操作できます。

現在の位置から戻す必要がある場合は、変換を ivar に保存し、逆変換を使用できます。

_currentTransform = CGAffineTransformMakeTranslation(newTranslation.x, 0);

以降:

CGAffineTransform inverse = CGAffineTransformInvert(_currentTransform);

あなたができるすべての変換を削除したい場合self.transform = CGAffineTransformIdentity

お役に立てれば!

于 2012-05-17T14:47:58.277 に答える