作者:1hhhhhhhhhhh0_196_217 | 来源:互联网 | 2023-01-10 15:40
如何解决《对于UITableView,我是否需要实现trailingSwipeActionsConfigurationForRowAt和/或editActionsForRowAt?》经验,为你挑选了1个好方法。
推出iOS11 trailingSwipeActionsConfigurationForRowAt
(并领先......).这是否意味着我现在必须实施
用于控制iOS11 AND的滑动的尾随/前导方法
editActionsForRowAt
对于iOS10?
如何让模拟器运行iOS10模拟以查看我的应用程序在后台操作系统中的行为?由于现在一切都是iOS11,我不确定我的应用程序将在该版本中如何?
澄清:我想要对行进行操作,但我不想要iOS11中的默认行为performsFirstActionWithFullSwipe
.如果我只是实现,editActionsForRowAt
那么iOS11会完全滑动.
1> PGDev..:
根据您的要求:
我想要对行进行操作,但我不希望在iOS11中执行performFirstActionWithFullSwipe的默认行为.如果我只是实现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]
}
在iOS-11中,
引入了2种新方法来支持a UITableView
,ie leadingSwipeActionsConfigurationForRowAt
和trailingSwipeActionsConfigurationForRowAt
.
根据Apple的说法,
滑动操作
这些方法取代了-editActionsForRowAtIndexPath:如果实现的话
返回nil以获取默认滑动操作
因此,您可以实现这两种方法来获取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
}
如果您仍然遇到任何问题,请告诉我.