如何在 TAP 上编辑 tableview 单元格而不是滑动 - Swift

Posted

技术标签:

【中文标题】如何在 TAP 上编辑 tableview 单元格而不是滑动 - Swift【英文标题】:How to edit tableview cell on TAP instead of swipe - Swift 【发布时间】:2015-10-25 16:54:54 【问题描述】:

我有一个UITableViewController,目前,用户可以在单元格上向左滑动以显示“添加到收藏夹”按钮。我现在想在单元格中添加一个图标,用户可以点击该图标以显示此按钮(与向左滑动相同)。对于不知道向左滑动会做同样事情的用户来说,这只是一个视觉辅助。

对于我的TableView,当用户按下按钮时,我使用以下代码“关闭单元格”:

itemsTableView.setEditing(false, animated: true)

据此,我假设要手动打开单元格,我只需调用:

//Get cell
let cell:TableViewCell = itemsTableView.cellForRowAtIndexPath(NSIndexPath(forRow: 
sender.tag, inSection: 0)) as! TableViewCell 

//Open cell to reveal button
cell.setEditing(true, animated: true)

不幸的是,这不起作用。所以我想知道当用户向单元格左侧滑动时调用的函数是什么,当用户点击图标时如何复制它?

【问题讨论】:

“当用户向单元格左侧滑动时调用的函数是什么,当用户点击图标时如何复制它”你告诉我们。你说用户可以向左滑动。你以某种方式实现了这一点。怎么样? @matt 我什么都不叫。当我实现tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) 来设置我的自定义操作时,这会激活“滑动编辑”功能。这就是我所做的。我希望任何想要为这个问题添加输入的人都已经知道......如果它像“只需调用用户滑动时调用的函数”那么简单,我就不会问这个问题了? 别小气。还有很多其他方法可以做到这一点;我需要知道您使用的是editActions...。现在你已经回答了。这是拼图中缺失的部分。 您可以通过自定义实现来模仿这种行为。我已经发布了一个 sn-p,这是在 ***.com/a/47227225/1800915 完成的。已验证且有效。 【参考方案1】:

我认为你做不到,抱歉。此功能依赖于 UITableView 的平移手势识别器。当用户平移时,表格视图检查editActions... 委托方法,如果我们有编辑操作,则在单元格后面插入一个私有确认视图并允许移动单元格以显示它。据我所知,您无法以编程方式触发该行为。

这将是坚持使用第三方可滚动单元格类的一个原因——许多非常好的原因之一。这样,单元格是一个水平滚动视图,您只需在代码中滚动它。

【讨论】:

啊,真可惜。难怪我找不到办法!非常感谢! 我用 View Debugger 和 LLDB 进行了大量探索,试图弄清楚这个功能是如何工作的,这就是我想出的全部。如果这里有一个滚动视图,我们可以尝试在代码中滚动它,但根本没有(至少,在一切静止的时候都没有)。 谢谢你的帮助,非常感谢! 这个有更新吗?我假设如果有人能找到滑动动作是如何触发的,他们可以把它放在 didSelectRowAt 中。

以上是关于如何在 TAP 上编辑 tableview 单元格而不是滑动 - Swift的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一个视图控制器中使用核心数据编辑 Tableview 单元格数据

jface tableviewer,如何为每个单元格使用不同的单元格编辑器?

如何在单个tableView中创建各种类型的单元格?

在单元格内编辑textview时,将另一个单元格添加到tableview

如何在单个 tableView 中创建各种类型的单元格?

在 iPad 上编辑时编辑 tableview 缺少背景颜色