测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年1月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 prema janoti 维护。
它提供了一个类似 Android 的侧边面板菜单。
如果您已安装 Cocoa Pods,则可以跳过此步骤。
$ [sudo] gem install cocoapods
$ pod setup
SidePanelMenu
pod一旦 Cocoa Pods 已安装,您可以通过在项目根目录中的 Podfile 中添加依赖项输入将 SideMenuView
iOS 组件添加到您的项目中。
$ edit Podfile
platform :ios, '9.0'
pod 'SidePanelMenu'
此示例显示了您可以使用它将 SideMenuView
iOS 组件依赖项添加到项目的最小 Podfile。您可以根据需要包含其他依赖项。
现在您可以安装项目中的依赖项
$ pod install
安装项目中的 pod 依赖项后,确保在构建项目时始终打开 Xcode 工作区而不是项目文件
$ open App.xcworkspace
现在您可以在源文件中导入 SidePanelMenu
Swift
import SidePanelMenu
在此阶段,SideMenuView
iOS 组件已在您的项目中准备好使用。
步骤 1. 前往您的 ViewController.swift
& 导入 SidePanelMenu
步骤 2. 前往您的 ViewController.swift
& 添加 SideMenuViewDelegate
步骤 3. 创建一个类型为 SideMenuView
的变量
var slideView: SideMenuView?
override func viewDidLoad() {
super.viewDidLoad()
self.addSidePanel()
self.leftBarButton()
}
func leftBarButton() {
var leftBarButtons = [UIBarButtonItem]()
let barButtonItem = UIBarButtonItem.init(image: UIImage(named: "menu_normal"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.menuButtonTapped))
leftBarButtons.append(barButtonItem)
if leftBarButtons.count > 0 {
self.navigationItem.leftBarButtonItems = leftBarButtons
}
let backButton = UIBarButtonItem(title: "Back", style: .plain, target: self, action: nil)
self.navigationItem.backBarButtonItem = backButton
}
func menuButtonTapped() {
self.showSidePanel()
}
backGroundColor
、separatorColor
、separatorType
、transparentViewMargin
等,否则它将使用默认值。 func addSidePanel() {
if self.slideView != nil {
self.slideView?.removeFromSuperview()
self.slideView = nil
}
let contents = self.sidePanelContents()
self.slideView = SideMenuView.initMenuView(contents, slideDirection: .left, delegate: self)
self.slideView?.isHidden = true
self.slideView?.backGroundColor = UIColor.white
self.slideView?.separatorColor = UIColor.init(colorLiteralRed: 86.0/255.0, green: 119.0/255.0, blue: 133.0/255.0, alpha: 1.0)
self.slideView?.separatorType = UITableViewCellSeparatorStyle.singleLine
self.slideView?.transparentViewMargin = 120
self.view.addSubview(self.slideView!)
self.slideView?.setupInitialConstraintWRTView(self.view, containerView: nil)
}
func sidePanelContents() -> [Item] {
var sideContents = [Item]()
let item1 = Item.init(title: "Feedback", iconName: "feedback", isSelected: false)
sideContents.append(item1)
let item2 = Item.init(title: "My Job", iconName: "myjobs", isSelected: false)
sideContents.append(item2)
return sideContents
}
func showSidePanel() {
self.slideView?.lblUserName.text = "Prema Janoti"
self.slideView?.userIView.image = UIImage(named: "placeholder")
self.slideView?.menuTView.reloadData()
self.slideView?.showSidePanelWithoutSlideEffectOnSuperView()
}
func removeSidePanel() {
self.slideView?.removeSidePanelWithoutSlideEffectOnSuperView()
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.removeSidePanel()
}
func didSelectItem(_ item: Item) {
if item.title.caseInsensitiveCompare("Feedback") == ComparisonResult.orderedSame {
// Do your stuf here
} else if item.title.caseInsensitiveCompare("My Jobs") == ComparisonResult.orderedSame {
// Do your stuf here
}
self.removeSidePanel()
}