gpt4 book ai didi

ios - 对于 UITableView,我是否需要实现 trailingSwipeActionsConfigurationForRowAt 和/或 editActionsForRowAt?

转载 作者:搜寻专家 更新时间:2023-10-30 21:52:38 32 4
gpt4 key购买 nike

iOS11 引入了 trailingSwipeActionsConfigurationForRowAt(并领先...)。这是否意味着我现在必须实现

  1. 用于控制 iOS11 滑动的尾部/前导方法AND
  2. editActionsForRowAt 适用于 iOS10?

如何让模拟器运行 iOS10 模拟以查看我的应用程序在后级操作系统中的行为?由于现在一切都是 iOS11,我不确定我的应用程序在那个版本中会如何?

澄清一下:我想要对行执行操作,但我不想要 iOS11 中 performsFirstActionWithFullSwipe 的默认行为。如果我只是实现 editActionsForRowAt,那么 iOS11 会执行完整的滑动操作。

最佳答案

根据您的要求:

我想要行操作,但我不想要 performsFirstActionWithFullSwipe 的 iOS11 中的默认行为。如果我只是实现 editActionsForRowAt,那么 iOS11 会执行完整的滑动操作。

在 iOS-10 及以下版本中,

要让 edit 操作UITableView 中工作,只需实现以下方法:

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool
{
return true
}

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]?
{
let deleteAction = UITableViewRowAction(style: .destructive, title: "Delete") { (action, indexpath) in
//YOUR_CODE_HERE
}
deleteAction.backgroundColor = .red
return [deleteAction]
}

在 iOS-11 中,

引入了 2 个新方法来支持在 UITableView 中进行编辑,即 leadingSwipeActionsConfigurationForRowAttrailingSwipeActionsConfigurationForRowAt

根据 Apple 的说法,

Swipe actions

These methods supersede -editActionsForRowAtIndexPath: if implemented

return nil to get the default swipe actions

因此,您可以实现这两种方法来获得 iOS-11 特定的行为。即使您不这样做,editActionsForRowAt 也会被调用。

如果您不想在 iOS-11 中使用编辑操作的默认完全滑动行为,只需将 performsFirstActionWithFullSwipe 设置为 false

示例:

@available(iOS 11.0, *)
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration?
{
return nil
}

@available(iOS 11.0, *)
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration?
{
let deleteAction = UIContextualAction(style: .destructive, title: "Delete") { (action, view, handler) in
//YOUR_CODE_HERE
}
deleteAction.backgroundColor = .red
let configuration = UISwipeActionsConfiguration(actions: [deleteAction])
configuration.performsFirstActionWithFullSwipe = false
return configuration
}

如果您仍然遇到任何问题,请告诉我。

关于ios - 对于 UITableView,我是否需要实现 trailingSwipeActionsConfigurationForRowAt 和/或 editActionsForRowAt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47067840/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com