UITableView中的UISlider不响应滑动手势

3

我试图将UISlider插入到UITableViewCell中,但滑动手势无法正确工作。为了滑动需要按住并移动滑块,但我想要在不按住的情况下获得滑动手势。我认为tableview的手势不允许这样做,但我不知道如何禁用它。


禁用UITableView的平移手势或禁用UITableView上的滚动将允许平移手势正常工作。或者,您可以使用一些UIGestureRecognizerDelegate方法尝试同时使两个手势识别器正常工作。 - keithbhunter
@keithbhunter 我该如何禁用平移手势?你能帮我找到示例吗? - EgorkaZe
我认为 tableView.scrollEnabled = false 会禁用它。 - keithbhunter
@keithbhunter 不,它没有帮助。 - EgorkaZe
2个回答

0

我最近也遇到了同样的问题。这个问题发生在我使用Storyboard实例化UITableViewController的静态单元格中。我已经找到了一个丑陋的解决方法,但是如果有更好的解决方案,我会很高兴看到它。

所以我禁用了UITableViewController的self.view和self.view.superview的所有手势识别器:

- (void)disableGestureRecognisersInView:(UIView*)view {

    for ( UIView *subview in view.subviews ) {
        for ( UIGestureRecognizer *rec in subview.gestureRecognizers ) {
            rec.enabled = NO;
    }
}

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    [self disableGestureRecognisersInView:self.view];
    [self disableGestureRecognisersInView:self.view.superview];
}

现在UISlider正常工作,没有因为这个解决方法而注意到任何其他问题。但我仍然不喜欢它。


0
使用 -gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 将属性设置为YES。然后,您可以在函数中添加一个检查来决定应该对哪个手势进行操作。

gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:没有被调用,我没有使用自定义手势识别器。如果我将UISlider添加到UIView中,它可以正常工作,但在表视图中却无法正常工作。 - EgorkaZe
你在你的类中实现了 UIGestureRecognizerDelegate 吗? - rmp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接