OptionMenu
显示选项菜单不应需要很多代码。此框架支持选项菜单的三种主题(材料设计底部面板,弹出,水平)。这意味着可以使用最少的代码配置来实现。
用法
// Data Source
class MyOptionMenuDataSource : ListOptionsMenuDataSource {
func optionsMenuTitle(_ optionsMenu: OptionsMenu) -> String? {
return nil
}
func optionsMenuSubtitle(_ optionsMenu: OptionsMenu) -> String? {
return nil
}
func optionsCount(_ optionsMenu: OptionsMenu) -> Int {
return 5
}
func optionsMenu(_ optionsMenu: OptionsMenu, optionAtIndex index: Int) -> OptionsMenuItem? {
return OptionsMenuItem(identifier: String(index),
title: "New Option Menu At \(index)",
imageName: "ic_optionmenu")
}
}
// Delegate
class MyOptionMenuDelegate : ListOptionsMenuDelegate {
func optionsMenu(_ optionsMenu: OptionsMenu, didSelectOptionAtIndex index: Int) {
print("Did select item at \(index)")
}
}
// Style Customization
class MyOptionMenuDataStyle : ListOptionsMenuStyle {
func optionsMenu(_ optionsMenu: OptionsMenu, fontForItemAtIndex index: Int) -> UIFont? {
return UIFont.systemFont(ofSize: 14)
}
func optionsMenuBackgroundColor(_ optionsMenu: OptionsMenu) -> UIColor? {
return UIColor.white
}
func optionsMenuTintColor(_ optionsMenu: OptionsMenu) -> UIColor? {
return UIColor.black
}
}
// Inside your View Controller
func show() {
let myOptionMenu = OptionsMenu(parentViewController: self)
myOptionMenu.behaviour = BottomSheetMenuDisplayBehaviour()
myOptionMenu.style = MyOptionMenuDataStyle()
myOptionMenu.dataSource = MyOptionMenuDataSource()
myOptionMenu.delegate = MyOptionMenuDelegate()
myOptionMenu.show(animated: true)
}
要求
iOS 10+
示例
要运行示例项目,克隆仓库,然后首先从示例目录运行pod install
安装
CocoaPods
OptionMenu可以通过CocoaPods获得。要安装它,只需将以下行添加到Podfile中
pod 'OptionMenu', '~> 2.1'
许可证
OptionMenu在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。