UIContextualAction 显示 UIMenu
UIContextualAction display UIMenu
我注意到在 Facebook Messenger 中,当有人按下 UIContextualAction
时,它们会显示 UIMenu
。
我可能遗漏了一些东西,但我不知道该怎么做。如果有人知道执行此操作的代码,我将不胜感激。
好吧,我不喜欢这种方法,但到目前为止,它对我很有效。我发现 可以访问 UIButton,然后您可以为其设置菜单。
func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath) {
for subview in tableView.subviews {
if NSStringFromClass(type(of: subview)) == "_UITableViewCellSwipeContainerView" {
for swipeContainerSubview in subview.subviews {
if NSStringFromClass(type(of: swipeContainerSubview)) == "UISwipeActionPullView" {
for case let button as UIButton in swipeContainerSubview.subviews {
var menuItems = [UIAction]()
menuItems.append(UIAction(title: "Test") { action in
print("Test")
})
button.showsMenuAsPrimaryAction = true
button.menu = UIMenu(title: "", children: menuItems)
}
}
}
}
}
}
我注意到在 Facebook Messenger 中,当有人按下 UIContextualAction
时,它们会显示 UIMenu
。
我可能遗漏了一些东西,但我不知道该怎么做。如果有人知道执行此操作的代码,我将不胜感激。
好吧,我不喜欢这种方法,但到目前为止,它对我很有效。我发现
func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath) {
for subview in tableView.subviews {
if NSStringFromClass(type(of: subview)) == "_UITableViewCellSwipeContainerView" {
for swipeContainerSubview in subview.subviews {
if NSStringFromClass(type(of: swipeContainerSubview)) == "UISwipeActionPullView" {
for case let button as UIButton in swipeContainerSubview.subviews {
var menuItems = [UIAction]()
menuItems.append(UIAction(title: "Test") { action in
print("Test")
})
button.showsMenuAsPrimaryAction = true
button.menu = UIMenu(title: "", children: menuItems)
}
}
}
}
}
}