访问 UIPanGestureRecognizer 驱动 tableView(_:leadingSwipeActionsConfigurationForRowAt:)
Access the UIPanGestureRecognizer driving tableView(_:leadingSwipeActionsConfigurationForRowAt:)
我正在使用新的 iOS 11 tableView(_:leadingSwipeActionsConfigurationForRowAt:)
和 tableView(_:trailingSwipeActionsConfigurationForRowAt:)
方法向我的 table 单元格行添加轻扫操作。我需要一些与平移手势相关的额外动画。如何访问我假设驱动这些方法的手势识别器?
下面是一些相关代码:
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
//
// I WANT TO DO SOME ANIMATION STUFF WITH THE PAN GESTURE RECOGNIZER HERE
//
let item = coreData.listResultsController.object(at: indexPath)
let action = UIContextualAction(style: .normal, title: "Quantity", handler: { (action, view, completionHandler) in
print("Show count now")
})
let sortOrder = item.category?.sortOrder ?? 0
action.backgroundColor = UIColor.OMGColors.section[sortOrder]
action.image = UIGraphicsImageRenderer(size: CGSize(width: 30, height: 30)).image { _ in
guard let image = UIImage(named:"Pound Sign") else {
return
}
image.draw(in: CGRect(x: 0, y: 0, width: 30, height: 30))
}
let configuration = UISwipeActionsConfiguration(actions: [action])
return configuration
}
是否可以在此处访问平移手势识别器,或者我是否需要停止使用 tableView(_:leadingSwipeActionsConfigurationForRowAt:)
和 tableView(_:trailingSwipeActionsConfigurationForRowAt:)
并自行滚动以便我可以访问?
您可以访问它们,但不幸的是,我不确定它对您有多大帮助。
您会在表格视图的 gestureRecognizers
属性 中找到它们,就像任何其他手势识别器一样。
但是,它是 UIPanGestureRecognizer
的自定义子 class,似乎是私有的 API:
_UISwipeActionPanGestureRecognizer
您可以转换为 UIPanGestureRecognizer
,但可能不建议尝试,因为 class 是未记录的私有 API; iOS 版本之间这些东西可能会在没有任何警告的情况下发生变化,而且 Apple 无论如何都不喜欢你做那种事。
我正在使用新的 iOS 11 tableView(_:leadingSwipeActionsConfigurationForRowAt:)
和 tableView(_:trailingSwipeActionsConfigurationForRowAt:)
方法向我的 table 单元格行添加轻扫操作。我需要一些与平移手势相关的额外动画。如何访问我假设驱动这些方法的手势识别器?
下面是一些相关代码:
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
//
// I WANT TO DO SOME ANIMATION STUFF WITH THE PAN GESTURE RECOGNIZER HERE
//
let item = coreData.listResultsController.object(at: indexPath)
let action = UIContextualAction(style: .normal, title: "Quantity", handler: { (action, view, completionHandler) in
print("Show count now")
})
let sortOrder = item.category?.sortOrder ?? 0
action.backgroundColor = UIColor.OMGColors.section[sortOrder]
action.image = UIGraphicsImageRenderer(size: CGSize(width: 30, height: 30)).image { _ in
guard let image = UIImage(named:"Pound Sign") else {
return
}
image.draw(in: CGRect(x: 0, y: 0, width: 30, height: 30))
}
let configuration = UISwipeActionsConfiguration(actions: [action])
return configuration
}
是否可以在此处访问平移手势识别器,或者我是否需要停止使用 tableView(_:leadingSwipeActionsConfigurationForRowAt:)
和 tableView(_:trailingSwipeActionsConfigurationForRowAt:)
并自行滚动以便我可以访问?
您可以访问它们,但不幸的是,我不确定它对您有多大帮助。
您会在表格视图的 gestureRecognizers
属性 中找到它们,就像任何其他手势识别器一样。
但是,它是 UIPanGestureRecognizer
的自定义子 class,似乎是私有的 API:
_UISwipeActionPanGestureRecognizer
您可以转换为 UIPanGestureRecognizer
,但可能不建议尝试,因为 class 是未记录的私有 API; iOS 版本之间这些东西可能会在没有任何警告的情况下发生变化,而且 Apple 无论如何都不喜欢你做那种事。