EliminationMenu
一种菜单,用于消除所有未被选中的值。
安装
只需将 Sources
文件夹拖到您的项目中。
Cocoapods
如果您使用的是 CocoaPods,将其添加到您的 Podfile 中
pod EliminationMenu
Swift Package Manager
要将 EliminationMenu 添加到基于 Swift Package Manager 的项目中,将以下内容添加到您的 Package.swift
中的 dependencies
值:
.package(url: "https://github.com/r-dent/EliminationMenu", from: "1.0.2")
使用方法
您可以在 Interface Builder 中或是在代码中创建一个 EliminationMenu 视图。
创建条目
为了设置条目,创建一个符合 EliminationMenuItem
实例的数组,并将其设置到菜单对象的 items
属性。
let menuEntries = [
EliminationMenu.Item(value: "SomeValue", title: "First"),
EliminationMenu.Item(value: "SomeOtherValue", title: "Second"),
EliminationMenu.Item(value: UIImage(named: "filename"), title: "Third"), // You can use values of any kind.
EliminationMenu.Item(value: "...or a view", title: "Fourth"),
"Just a String",
MyCustomType(customProperty: true, someOtherProperty: 5)
]
menu.items = menuEntries
提示:默认的类型 EliminationMenu.Item
可以用来填充菜单。但您也可以创建自己的类型来符合 EliminationMenuItem
并直接使用。例如,String
已经符合了它。因此,您可以使用字符串作为菜单项。参见示例项目以获得概述。
创建菜单
使用便捷方法创建菜单并将其添加到视图控制器的视图作为子视图。
let menu = EliminationMenu.createMenu(withItems: menuEntries, inView: view, aligned: .topRight, margin: CGPoint(x: 0, y: 20)) { (item) in
print("Selected value: \(item.value)")
}
如果您想使用 Interface Builder,只需添加一个 UIView
,并固定其两条边缘(垂直和水平)。将 EliminationMenu
设置为视图的类。同时添加宽度和高度的约束以抑制警告。在大小约束上启用 "在构建时移除"。菜单将在运行时获得固有大小。
您还可以创建一个 EliminationMenu
实例,并在父视图中对其进行约束。确保在最后调用 menu.setup()
。
参见 示例代码 以获得更深入的了解。
自定义
您可以如下自定义菜单的属性
menu.font = UIFont.boldSystemFont(ofSize: 24)
menu.color = UIColor.white
menu.setup()
请务必调用 menu.setup()
应用您的变更。有关更多自定义方式,请参阅 文档。
授权协议
EliminationMenu
受 MIT 授权协议保护。有关更多信息,请参阅 LICENSE 文件。