0

我使用CGAffineTransformMakeTranslationUIPanGestureRecognizer來平移UIView。CGAffineTransformMakeTranslation Movement

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,而不是絕對值。

有什麼建議嗎?

感謝

回答

3

設置轉換是即時操作,因爲它是視圖的位置,只是矩陣乘法。

如果您需要從您的當前位置恢復,可以節省轉換到伊娃,並使用逆變換,即:

_currentTransform = CGAffineTransformMakeTranslation(newTranslation.x, 0);

及更高版本:

CGAffineTransform inverse = CGAffineTransformInvert(_currentTransform);

如果你想刪除所有你可以做的變換self.transform = CGAffineTransformIdentity

希望這會有所幫助!

相關問題