gpt4 book ai didi

ios - 如何使用 UISwipeGestureRecognizer 检测 UITableViewCell 中的滑动事件

转载 作者:行者123 更新时间:2023-11-29 02:45:02 25 4
gpt4 key购买 nike

我有一个 UITableViewCell 类,我想在其中检测滑动事件(删除),以隐藏在 drawRect 中绘制的一些图形

首先,我向单元格添加了一个UISwipeGestureRecognice:

// Init swipe gesture recognizer
self.swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeCell:)];
self.swipeRecognizer.direction = UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight;
self.swipeRecognizer.delegate = self;
[self.contentView addGestureRecognizer:self.swipeRecognizer];

然后我实现了一种对滑动事件使用react的方法:

- (void)swipeCell:(UISwipeGestureRecognizer *)recognizer
{
switch (recognizer.state) {
case UIGestureRecognizerStateBegan:
self.swipeStartPoint = [recognizer locationInView:self.backgroundView];
BaseLogDebug(INFO, @"Swipe Began at %@", NSStringFromCGPoint(self.swipeStartPoint));
break;
case UIGestureRecognizerStateChanged: {
CGPoint currentPoint = [recognizer locationInView:self.backgroundView];
CGFloat deltaX = currentPoint.x - self.swipeStartPoint.x;
BaseLogDebug(INFO, @"Swipe Moved %f", deltaX);
}
break;
case UIGestureRecognizerStateEnded:
BaseLogDebug(INFO, @"Swipe Ended");
break;
case UIGestureRecognizerStateCancelled:
BaseLogDebug(INFO, @"Swipe Cancelled");
break;
default:
break;
}
}

为了允许同步手势识别器,我实现了以下方法:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}

手势识别唯一能识别的状态是 UIGestureRecognizerStateEnded 状态。我的代码有什么问题吗?

最佳答案

来自UIGestureRecognizer Class Reference docs :

从 UIGestureRecognizerStatePossible 到 UIGestureRecognizerStateFailed 或 UIGestureRecognizerStateRecognized 的离散手势转换的识别器。

手势识别器识别离散事件,例如点击或滑动,但不报告手势内的变化。换句话说,离散手势不会通过 Began 和 Changed 状态转换,它们不会失败或被取消。

UISwipeGestureRecognizer 是一种离散手势。如果您想要连续(但相似)的手势,请改用 UIPanGestureRecognizer

关于ios - 如何使用 UISwipeGestureRecognizer 检测 UITableViewCell 中的滑动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25253772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com