一种菜单,用于消除所有未被选中的值。
只需将 Sources
文件夹拖入你的项目即可。
如果你正在使用 CocoaPods,请将以下内容添加到你的 Podfile
pod EliminationMenu
要将 EliminationMenu 添加到基于 Swift Package Manager 的项目,请添加以下内容
.package(url: "https://github.com/r-dent/EliminationMenu", from: "1.0.2")
到你的 Package.swift
文件的 dependencies
值中。
你可以在 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
并固定其 2 条边(垂直和水平)。将 EliminationMenu
设置为视图的类。同时添加宽度和高度约束以抑制警告。在尺寸约束上启用“Build Time时移除”。菜单将在运行时获得固有大小。
你也可以创建 EliminationMenu
的实例,并在父视图中自行约束它。请务必在所有操作完成后调用 menu.setup()
。
请参阅示例代码以获得更好的理解。
你可以像这样自定义菜单的属性
menu.font = UIFont.boldSystemFont(ofSize: 24)
menu.color = UIColor.white
menu.setup()
请务必调用 menu.setup()
以应用你的更改。请参阅文档以了解更多自定义方法。
EliminationMenu
在 MIT 许可协议下可用。有关更多信息,请参阅 LICENSE 文件。