【发布时间】:2019-04-15 08:29:44
【问题描述】:
我有可滑动的表格视图单元格。目的是让用户完全向左或向右滑动行(完全向外滑动),然后从表格中删除滑动的行(就像 Gmail 收件箱的工作方式一样)。一切正常,但我有一个问题。
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let swipeRightAction = UIContextualAction(style: .destructive, title: "", handler: { (ac:UIContextualAction, view:UIView, success:(Bool) -> Void) in
let item = self.myItems[indexPath.row]
self.swipeRight(item) //do something
self.myItems.remove(at: indexPath.row)
success(true)
})
return UISwipeActionsConfiguration(actions: [swipeRightAction])
}
如何设置阈值/距离(用户必须滑动多少才能采取行动)?目前,用户必须在该行被刷出之前滑动一半。我可以更改这一点,让用户只需轻扫一点(比如 20% 的距离)即可扫出该行吗?
【问题讨论】:
-
1.从来不知道有什么叫
UISwipeActionsConfiguration:) 2. 你见过这样的应用程序吗? 3. 整体有趣的问题。赞成 -
虽然这不能解决您的问题,但我敦促您考虑这一点。 20% 的滑动删除“可能”会导致在用户滚动您的 tableview 时注册不正确的删除,而不是中途默认滑动,这更清楚地表明用户的意图是删除单元格。
-
@Honey:它是在 iOS 11 的 UITableView 中引入的,所以它很新。有关此 API 的更多信息here。
-
@Vin Gazoil:那篇文章与这个问题无关,以及其他大多数文章都只涉及每个人都知道的基本功能。
标签: ios swift uitableview