【问题标题】:Disabling only left swipe on UITableViewCell.仅禁用 UITableViewCell 上的左滑动。
【发布时间】:2014-03-26 14:36:55
【问题描述】:

我的主视图控制器包括一个表格视图,以及一个在用户向左平移时折叠的右侧单独视图。

我在这个控制器上设置了一个PanGestureRecogniser,以便用户可以使用它在两个视图之间切换。除了一个问题,它工作正常。

当只有一个或两个单元格时,用户需要使用底部未被单元格覆盖的空白区域进行平移。当有单元格覆盖整个视图时,或者当用户向左平移时,单元格的滑动删除功能会被激活,因为平移手势总是会触发滑动手势。

我想保留滑动删除功能,但当用户在单元格上向右滑动时。

任何左侧滑动/平移都应始终展开右侧的第二个视图。我正在使用自定义 UITableViewCell 子类。有什么方法可以禁用ONLY左滑进入删除模式?

【问题讨论】:

  • 你试过创建 UISwipeGesture *swipe = [[UISwipeGesture alloc] initWithTarget:self 选择器:@selector(doFoldOutAction)]; [滑动 setDirection:UISwipeRightDirection];并将其添加到您的 UITableView 中?
  • 不会覆盖单元格的滑动删除吗?我需要保留该功能,但仅覆盖左侧滑动。我假设您打算写 UISwipeLeftDirection 以便向左滑动触发折叠?我会试试的,谢谢。

标签: ios iphone uitableview uigesturerecognizer uipangesturerecognizer


【解决方案1】:

这是完全可能的。

这是代码。将相同的内容添加到您的 - (void) viewDidLoad 方法中:

UISwipeGestureRecognizer * newSwipeGR = [[UISwipeGestureRecognizer alloc] initWithTarget:nil action:nil];
newSwipeGR.direction = UISwipeGestureRecognizerDirectionLeft;
newSwipeGR.numberOfTouchesRequired = 1;
[self.myTableView addGestureRecognizer:newSwipeGR];

仍然像往常一样启用删除模式,但您现在发现删除滑动只在一个方向上起作用。

【讨论】:

    猜你喜欢
    • 2017-05-02
    • 2013-08-25
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多