Ios 对于UITableView,我是否需要为Rowat和/或editActionsForRowAt实施跟踪操作配置?
iOS11为Rowat引入了Ios 对于UITableView,我是否需要为Rowat和/或editActionsForRowAt实施跟踪操作配置?,ios,swift,uitableview,ios11,Ios,Swift,Uitableview,Ios11,iOS11为Rowat引入了跟踪开关配置(和引导…)。这是否意味着我现在必须实施 控制iOS11和iOS11刷卡的尾随/前导方法 editActionsForRowAt用于iOS10 如何让模拟器运行iOS10模拟,以查看我的应用程序在后台操作系统中的行为?由于现在一切都是iOS11,我不确定我的应用程序将如何在该版本中 澄清一下:我想要行的操作,但我不想要iOS11中的默认行为performsFirstActionWithFullSwipe。如果我只是实现了editActionsForRowA
跟踪开关配置(和引导…)。这是否意味着我现在必须实施
控制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都有效。如果有效,请接受并投票。快乐编码:)我使用了“编辑操作”方法,它只显示右侧滑动,只显示左侧滑动按钮的操作。?