可自定义的 tableview 单元格滑动以停止完全扩展?

Customisable tableview cell swipe to stop on full expansion?

有什么方法可以轻松实现下图中的结果(可能通过使用 MGSwipeTableCell 或 SwipeCellKit 或您知道的任何其他 pod)。我很确定你不能使用默认的 iOS UIKit 来做到这一点。

这里有两件事需要考虑:

1) table 视图单元格滑动操作应该是完全可定制的(将 UIView 放在那里,这样你就可以在 UIView 中放置任何你想要的东西)或者至少,靠近屏幕截图,使用1 个和 5 个按钮(因此,smallswipe 和 fullswipe 的滑动操作不同)?

2) table查看单元格滑动动作,必须首先(小滑动)只显示第一张图片中的“警报”图标,如果你点击它,或者进一步滑动它应该看起来像第二张图片,最重要的是,保持这样,没有自动取消滑动(除了等待用户输入,select 另一个单元格或那里的任何按钮外,没有任何操作要做).

我不是在寻求一个完整的解决方案,我只是想知道这是否可能并且相对容易做到,所以我不会浪费数周时间来尝试实现这一目标并最终发现这不可能。

SmallSwipe

FullSwipeOrClick

真不知道能不能做个小而全的滑动原生。 iOS11的刷卡方法是tableView(_:trailingSwipeActionsConfigurationForRowAt:)

从那里,我知道有 performFirsActionWithFullSwipe,它不允许第一次完全滑动。我想你可以玩这两个。在配置中,您可以添加 UIContextualAction,它具有您可以设置的操作、图像甚至背景颜色。

希望对您有所帮助。

我认为在您的 tableCell 中,您可以将视图添加到 contentView,这将填充所有单元格并通过 UIPanGestureRecognizer 拖动它。您的操作视图将在可滚动视图下。像这样:

class SwipableTableViewCell: UITableViewCell {
    @IBOutlet var actionView: UIView // under mainView
    @IBOutlet var mainView: UIView // take whole place of contentView
    @IBOutlet var panGesture: UIPanGestureRecognizer

    @IBAction func panAction(_ sender: UIPanGestureRecognizer) {
        // drag main view left or right and logic of auto swiping 
    }
}