Ios 对于UITableView,我是否需要为Rowat和/或editActionsForRowAt实施跟踪操作配置?

Ios 对于UITableView,我是否需要为Rowat和/或editActionsForRowAt实施跟踪操作配置?,ios,swift,uitableview,ios11,Ios,Swift,Uitableview,Ios11,iOS11为Rowat引入了跟踪开关配置(和引导…)。这是否意味着我现在必须实施 控制iOS11和iOS11刷卡的尾随/前导方法 editActionsForRowAt用于iOS10 如何让模拟器运行iOS10模拟,以查看我的应用程序在后台操作系统中的行为?由于现在一切都是iOS11,我不确定我的应用程序将如何在该版本中 澄清一下:我想要行的操作,但我不想要iOS11中的默认行为performsFirstActionWithFullSwipe。如果我只是实现了editActionsForRowA

iOS11为Rowat引入了
跟踪开关配置(和引导…)。这是否意味着我现在必须实施

  • 控制iOS11和iOS11刷卡的尾随/前导方法
  • editActionsForRowAt
    用于iOS10 如何让模拟器运行iOS10模拟,以查看我的应用程序在后台操作系统中的行为?由于现在一切都是iOS11,我不确定我的应用程序将如何在该版本中


    澄清一下:我想要行的操作,但我不想要iOS11中的默认行为
    performsFirstActionWithFullSwipe
    。如果我只是实现了
    editActionsForRowAt
    ,那么iOS11将执行完全扫描。

    它被声明为可选,因此不,您不必实现它。我假设默认实现是什么都不做

    如果需要某种形式的行操作,则需要:

    只需执行
    editActionsForRowAt
    ,它将适用于iOS 10、11、12和13。但它在iOS 14(或更新版本)中不可用

    或:

    在iOS 10上实现
    editActionsForRowAt
    ,并在iOS 11或更高版本上实现跟踪/滑动方法,这些方法稍微有些花哨

    或:

    忽略iOS 10,只支持iOS 11或更高版本的拖尾/刷卡操作,因为您的大多数客户可能都在运行iOS 11,而且行操作通常被视为可选功能


    如果您不希望完全滑动行为,则只能在iOS 11或更高版本上实现,您可以将
    performsFirstActionWithFullSwipe
    设置为false



    完全滑动方法在iOS 11之前不可用。它们在iOS 10中不起作用。

    根据您的要求:

    我希望对行执行操作,但不希望在iOS11中使用performsFirstActionWithFullSwipe的默认行为。如果我只是实现editActionsForRowAt,那么iOS11将执行完全扫描

    在iOS-10及以下版本中,

    要使
    编辑操作在
    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中,

    引入了两种新方法来支持在
    UITableView
    中进行编辑,即
    为Rowat
    引导WipeActions配置和为Rowat
    跟踪SwipeActions配置

    据苹果公司称

    刷卡动作

    这些方法取代 -EditActionsErrorWatIndeXPath:如果已实现

    返回nil以获取默认的刷卡操作

    因此,您可以实现这两种方法来获得iOS-11的特定行为。即使您没有编辑操作,也会调用errowat
  • 如果您不希望在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 11上执行
    编辑操作…
    以及
    跟踪/引导…

    在xcode中下载iOS 10模拟器并检查…iOS 11功能在iOS 10上不起作用我认为模拟器在那里,我只是不知道如何运行它,而不是从xcodeI运行ios11。我更新了这个问题,以澄清我想要的是操作,但不想要ios11默认情况下的完全滑动行为。因此,如果我只实现滑动方法,操作是否适用于iOS10?哪个没有这些方法?@Daniel暗示,如果我的应用程序针对的是iOS10+,那么我需要同时实现
    尾随/前导…
    方法和
    编辑操作…
    方法。对吗?如果你想避免全刷,可以。如果你能解决这个问题,只需执行editActions,它对iOS-10和iOS-11都有效。如果有效,请接受并投票。快乐编码:)我使用了“编辑操作”方法,它只显示右侧滑动,只显示左侧滑动按钮的操作。?