SKMenu
借助UIScrollView创建的易于自定义的菜单视图
使用
- 配置
SKMenuViewDataSource
,设置菜单视图及其项目属性
extension YourMenuDataSourceClass: SKMenuViewDataSource {
func menuViewItemSpacing(_ menuView: SKMenuView) -> CGFloat {
return 10.0
}
func menuViewItemZoomScale(_ menuView: SKMenuView) -> CGFloat {
return 1.25
}
func menuViewNumberofItems(_ menuView: SKMenuView) -> Int {
return self.menuItems.count
}
// menu item properties (image & selection color) at index
func menuView(_ menuView: SKMenuView, menuItemAt index: Int) -> SKMenuViewItem {
return SKMenuViewItem(image: UIImage(), selectionColor: .white)
}
func menuViewItemSize(_ menuView: SKMenuView) -> CGSize {
return CGSize(width: 55, height: 50)
}
// Configure different color combinations (selection state, normal state & back ground) for better user experience
func menuViewNormalStateBackgroundColor(_ menuView: SKMenuView) -> UIColor {
return UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.3)
}
func menuViewSelectionStateBackgroundColor(_ menuView: SKMenuView) -> UIColor {
return .clear
}
func menuViewItemNormalStateColor(_ menuView: SKMenuView) -> UIColor {
return .white
}
}
- 通过代码初始化
SKMenuView
。
// layouts are 4 types, .top(offset), .left(offset), .bottom(offset), .right(offset)
// animationStyle can be confiugred as .plain / .zoom
let menu = SKMenuView.initializeMenu(on: self.view,
dataSource: self,
layout: .right(10),
animateStyle: .plain)
- 设置并配置代理
SKMenuViewDelegate
menu.delegate = self
extension YourMenuDelegateClass: SKMenuViewDelegate {
// Perform actions intended to selected index
func menuView(_ menuView: SKMenuView, didSelectRowAt index: Int) {
}
}
- 加载菜单
menu.loadMenu()
- 有用的方法
// can select menu item on demand.
menu.selectMenuItem(at: 2)
SKMenu-Sample
要运行SKMenu-Sample项目,请先从仓库中克隆项目,然后从SKMenu-Sample目录运行pod install
命令。
需求
- SKMenu-Sample 是基于
- iOS 12.2+ / macOS 10.14+
- Xcode 11.0+
Swift 包
add swift package dependency from "https://github.com/vensan7888/SKMenu.git"
Cocoa Pod 安装
SKMenu 通过 CocoaPods 提供使用。要安装它,只需将以下行添加到您的 Podfile 中
pod 'SKMenu', '0.0.1'
作者
辛迪普·库马尔·M·V,[email protected]
License
SKMenu在MIT许可下可用。有关更多信息,请参阅LICENSE文件。