iOS11引入了trailingSwipeActionsConfigurationForRowAt (并领导.)。这是否意味着我现在必须
editActionsForRowAt for iOS10?如何让模拟器运行iOS10模拟来查看我的应用程序在后台操作系统中的行为?既然现在一切都是iOS11,我不知道我的应用程序在那个版本中会怎么样?
为了澄清:我想要行操作,但我不想要iOS11 of performsFirstActionWithFullSwipe中的默认行为。如果我只是实现editActionsForRowAt,那么iOS11会执行完整的滑动操作。
发布于 2017-11-02 05:08:00
如果您想要某种形式的行操作,则需要:
只实现editActionsForRowAt,它将适用于iOS 10、11、12和13,但在iOS 14 (或更高版本)中不可用。
或者:
在editActionsForRowAt 10上实现iOS,并在iOS 11或更高版本上实现跟踪/滑动方法--这些方法稍微好一些。
或者:
忽略iOS 10,只支持iOS 11或更高版本的跟踪/滑动操作,因为大多数客户可能无论如何都在运行iOS 11 -而且行操作通常被认为是一个可选的特性。
如果您不想要完整的滑动行为,则只能在iOS 11或更高版本上实现这一点,在那里可以将performsFirstActionWithFullSwipe设置为false。
完整的滑动方法在iOS 11之前是不可用的,它们在iOS 10中不起作用。
发布于 2017-11-02 06:17:24
根据您的要求:
我想要行操作,但我不想要iOS11 of performsFirstActionWithFullSwipe中的默认行为。如果我只是实现editActionsForRowAt,那么iOS11会执行完整的滑动操作。
iOS-10及以下版本的,
要使edit actions在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]
}In iOS-11,
提出了2种支持UITableView编辑的新方法,即leadingSwipeActionsConfigurationForRowAt和trailingSwipeActionsConfigurationForRowAt。
据苹果公司称,
滑动动作 这些方法取代-editActionsForRowAtIndexPath:如果实现的话 返回零以获得默认的滑动操作
因此,您可以实现这两种方法来获得iOS-11的特定行为。即使你没有,editActionsForRowAt也会被调用。
如果您不希望default full swipe behaviour of edit action在iOS-11中,只需设置performsFirstActionWithFullSwipe to 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
}如果你还面临任何问题请告诉我。
发布于 2017-11-02 04:59:09
它被声明为可选的,所以不,您不必实现它。我假设默认的实现是什么都不做
https://stackoverflow.com/questions/47067840
复制相似问题