在我的UITableViewCell子类中,我添加了一个平移手势,在gestureRecognizerShouldBegin方法中,我检查了self.frame.origin.x和self.frame.origin.y,它们都是0.000000和0.000000,并且应用了TranslationInView CGPoint translation = [gestureRecognizer translationInView:[self superview] ].我得到x = -4.000000和y = 0.000000
TranslationInView如何工作,我试图绕过它,当我得到单元格0.0和0.0的正确位置,因为第一个单元格将具有0.0和0.0,为什么我需要TranslationInView.
解决方法
TranslationInView是UIPanGestureRecognizer的一种方法,它可以告诉您自上次重置以来触摸的移动距离.当触摸发生故障或您自己重置时,它会重置.
例如
- (void) pan: (UIPanGestureRecognizer *) recognizer { if ((recognizer.state == UIGestureRecognizerStateChanged)||(recognizer.state == UIGestureRecognizerStateEnded)) { CGPoint translation = [recognizer translationInView:self]; } }
CGPoint的翻译增加/减少了手势移动的距离.