SimplePopUpMenu 0.1.0

SimplePopUpMenu 0.1.0

Miguel Machado 维护。




  • 作者
  • mmachado53

SimplePopUpMenu

CI Status Version License Platform

简单的自定义弹出式菜单,使用 Swift 实现

preview

示例

要运行示例项目,先克隆仓库,然后从 Example 目录运行 pod install

要求

安装

SimplePopUpMenu 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中

pod 'SimplePopUpMenu'

作者

mmachado53, [email protected]

使用方法

// YourUIViewControllerInstance.swift
import SimplePopUpMenu

@IBAction func tapButtonAction(_ sender:UIButton){

    let popUpMenu:PopUpMenuUIViewControler = PopUpMenuUIViewControler()
    /* Manage header of popupmenu */
    popUpMenu.title = "Menu title"
    popUpMenu.visibleHeader = true //default is false
    
    /* Manage menu items */
    var items:[PopUpMenuItem] = []
    // item without icon
    items.append(PopUpMenuItem(title: "Item A"))
    // item with icon
    items.append(PopUpMenuItem(title: "Item B",uiImage: uiImageInstance))
    // item with tinted icon
    items.append(PopUpMenuItem(title: "Item C",uiImage: uiImageInstance, tintImage:true))

    /*Show menu*/
    //permittedArrowDirections its a UIPopoverArrowDirection can be .up, .down, .left, .right, .any
    popUpMenu.showMenu(menuIdentifier: "menu1", viewController: self, items: items, sourceView: sender,permittedArrowDirections: .any)
}

当选择一个项目时监听

有两种方式可以监听项目的选择

简单回调

// YourUIViewController.swift
import SimplePopUpMenu

@IBAction func tapButtonAction(_ sender:UIButton){

    let popUpMenu:PopUpMenuUIViewControler = PopUpMenuUIViewControler()
    
    let items:[PopUpMenuItem] = [
           PopUpMenuItem(title: "Item A"),
           PopUpMenuItem(title: "Item B")
       ]
    popUpMenu.showMenu(menuIdentifier: "menu1", viewController: self, items: items, sourceView: sender,permittedArrowDirections: .any)
    
   popUpMenu.setHandler { (selectedMenuIndex) in
       print("selectedMenuIndex \(selectedMenuIndex)")
       print("selectedMenuText \(items[selectedMenuIndex].title)")
    }
}

使用代表

// YourUIViewController.swift
import SimplePopUpMenu

@IBAction func tapButtonAction(_ sender:UIButton){

    let popUpMenu:PopUpMenuUIViewControler = PopUpMenuUIViewControler()
    
    let items:[PopUpMenuItem] = [
           PopUpMenuItem(title: "Item A"),
           PopUpMenuItem(title: "Item B")
       ]
    popUpMenu.showMenu(menuIdentifier: "menu1", viewController: self, items: items, sourceView: sender,permittedArrowDirections: .any)
    popUpMenu.delegate = self
}

extension YourUIViewController : PopUpMenuDelegate{
   func popupmenu(selectItem: Int, menuIdentifier: String) {
       print("menuIdentifier \(menuIdentifier), selectedIndex: \(selectItem)")
   }
   
   
}

自定义颜色

全局颜色自定义

必须在AppDelegate中配置

// AppDelegate.swift

import SimplePopUpMenu

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    
    
    /* 
        All Application default popupmenu colors   
    */
    var popUpMenuStyle:PopUpMenuStyle = PopUpMenuStyle()
    // Color of all popup view
    popUpMenuStyle.baseColor = UIColor.white  
    // Color of the items texts                          
    popUpMenuStyle.textColor = UIColor.black
    // Background color of the header view
    popUpMenuStyle.headerColor = UIColor.black
    // Color of the header text 
    popUpMenuStyle.headerTextColor = UIColor.white
    // Color of separator
    popUpMenuStyle.itemSeparatorColor = UIColor.black
    // Background color of the item when is selected
    popUpMenuStyle.selectedBackgroundColor = UIColor.black.withAlphaComponent(0.1)
    
    // Set te global style
    PopUpMenuUIViewControler.globalStyle = popUpMenuStyle
    
    
    
    return true
}

实例颜色自定义

// YourUIViewController.swift
import SimplePopUpMenu

let myCustomPopUpStyle:PopUpMenuStyle = {
       var result:PopUpMenuStyle = PopUpMenuStyle()
       result.baseColor = UIColor.white  
       result.textColor = UIColor.black
       result.headerColor = UIColor.black
       result.headerTextColor = UIColor.white
       result.itemSeparatorColor = UIColor.black
       result.selectedBackgroundColor = UIColor.black.withAlphaComponent(0.1)
       return result
   }()

@IBAction func tapButtonAction(_ sender:UIButton){

    let popUpMenu:PopUpMenuUIViewControler = PopUpMenuUIViewControler()
    popUpMenu.style = myCustomPopUpStyle
    let items:[PopUpMenuItem] = [
           PopUpMenuItem(title: "Item A"),
           PopUpMenuItem(title: "Item B")
       ]
    popUpMenu.showMenu(menuIdentifier: "menu1", viewController: self, items: items, sourceView: sender,permittedArrowDirections: .any)
}

许可

SimplePopUpMenu 在 MIT 许可下可用。更多信息请参阅 LICENSE 文件。