我正在使用CGAffineTransformMakeTranslation和UIPanGestureRecognizer来pan一个UIView。
CGAffineTransformMakeTranslation是取增量x和增量y还是新位置的绝对值?这就是我所拥有的:
- (void)swipeDetected:(UIPanGestureRecognizer *)recognizer
{
CGPoint newTranslation = [recognizer translationInView:self.view];
self.navController.view.transform = CGAffineTransformMakeTranslation(newTranslation.x, 0);
.....
}这是从左到右的,但不是从右到左的。我很确定“平移”是指x和y,而不是绝对值。
有什么建议吗?
谢谢
发布于 2012-05-17 22:47:58
设置转换是一个直接的操作,因为它只是视图位置的矩阵乘法。
如果需要从当前位置恢复,可以将变换保存为ivar,然后使用逆变换,即:
_currentTransform = CGAffineTransformMakeTranslation(newTranslation.x, 0);
之后的版本:
CGAffineTransform inverse = CGAffineTransformInvert(_currentTransform);
如果想要删除所有转换,可以执行self.transform = CGAffineTransformIdentity
希望这能有所帮助!
https://stackoverflow.com/questions/10637052
复制相似问题