ContextMenuSwift
📱
安装只需将 ContextMenuSwift
添加到您的 Podfile 中,然后运行 pod install
。完成!
pod 'ContextMenuSwift'
✨
使用示例 1
在您的视图中展示字符串值的菜单
CM.items = ["Item 1", "Item 2", "Item 3"]
CM.showMenu(viewTargeted: YourView, delegate: self, animated: true)
示例 2
异步更新菜单项
CM.items = ["Item 1", "Item 2", "Item 3"]
CM.showMenu(viewTargeted: YourView, delegate: self, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
CM.items = ["Item 1"]
CM.updateView(animated: true)
}
示例 3
异步更新目标视图
CM.items = ["Item 1", "Item 2", "Item 3"]
CM.showMenu(viewTargeted: YourView, delegate: self, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
CM.changeViewTargeted(newView: YourView)
CM.updateView(animated: true)
}
示例 4
显示带图标的菜单
let share = ContextMenuItemWithImage(title: "Share", image: #imageLiteral(resourceName: "icons8-upload"))
let edit = "Edit"
let delete = ContextMenuItemWithImage(title: "Delete", image: #imageLiteral(resourceName: "icons8-trash"))
CM.items = [share, edit, delete]
CM.showMenu(viewTargeted: YourView, delegate: self, animated: true)
委托
您可以通过实现 ContextMenuDelegate 来检查事件
extension ViewController : ContextMenuDelegate {
func contextMenu(_ contextMenu: ContextMenu, targetedView: UIView, didSelect item: ContextMenuItem, forRowAt index: Int) -> Bool {
print(item.title)
return true //should dismiss on tap
}
func contextMenuDidAppear(_ contextMenu: ContextMenu) {
print("contextMenuDidAppear")
}
func contextMenuDidDisappear(_ contextMenu: ContextMenu) {
print("contextMenuDidDisappear")
}
}
需求
- Xcode 9+
- Swift 4.0
- iOS 10+
许可证
此项目在 MIT 许可证下。有关更多信息,请参阅 LICENSE
文件。
致谢
ContextMenuSwift 是在尝试实现使用点击手势的 iOS 13 上下文菜单时开发的。
将在必要时进行更新,并在发现问题后尽快修复以保持其更新状态。
您可以在 Twitter @Umer_Jabbar 和 Linkedin umerjabbar 上找到我。
享受乐趣!