我在单元格中添加了一个 UIPanGestureRecognizer,允许用户水平滑动它。当单元格 x 原点超过 50 时,我希望单元格移动得更慢,例如 UIScrollView 限制发生的情况,但是我遇到了一个问题:单元格没有按照应有的方式跟随我的手指。
我在屏幕上从左向右滑动手指多次,当我完成单元格时,它位于与起始位置不同的位置。
这是我用来移动单元格的代码(我的猜测是我在达到 50 时创建弹性效果的方式有问题):
- (void)slideCell:(UIPanGestureRecognizer *)panGestureRecognizer {
CGFloat horizontalTranslation = [panGestureRecognizer translationInView:self].x;
if (panGestureRecognizer.state == UIGestureRecognizerStateChanged) {
CGFloat retention = 1;
if (self.frame.origin.x > 50) retention = 5;
[self setCenter:CGPointMake(self.center.x+horizontalTranslation/retention, self.center.y)];
}
[panGestureRecognizer setTranslation:CGPointZero inView:self];
}