EliminationMenu

Travis CocoaPods CocoaPods Platform

一种菜单,用于消除所有未被选中的值。

安装

只需将 Sources 文件夹拖入你的项目即可。

Cocoapods

如果你正在使用 CocoaPods,请将以下内容添加到你的 Podfile

pod EliminationMenu

Swift Package Manager

要将 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 文件。