Swift-仿微信QQ菜单,可高度自定义

screenDemo.gif

PopupMenu是仿照YBPopupMenu所写的Swift版本,对原版本进行了适当的修改

使用说明:

  • PopupMenu使用类方法调用
  • PopupMenu提供代理 block 代理和block混合使用,总共对外开放了六个接口生成实例,推荐使用block
  • PopupMenu不出意外,应该会有bug未发现,如有发现,请自行解决
method.png

使用示例:

    var popupMenu : PopupMenu?
    let TITLES = ["修改", "删除", "扫一扫","付款"]
    let ICONS = ["motify","delete","saoyisao","pay"]
    
    // block 无设置delegate
    @IBAction func topLeftBtnPopupMenueClick(_ sender: Any) {
     
        PopupMenu.showRelyOnView(view: sender as! UIView, titles: TITLES, icons: ICONS, menuWidth: 120, didSelectRow: { (index, value, popupMenu) in
            print("索引是: \(index)值是: \(value)")
        }) { (popupMenu) in
            popupMenu.backColor = UIColor.lightGray
            popupMenu.separatorColor = UIColor.white
            popupMenu.priorityDirection = PopupMenuPriorityDirection.none
            popupMenu.borderWidth = 1
            popupMenu.borderColor = UIColor.red
            popupMenu.rectCorner = [.bottomRight,.bottomLeft]
        }
    }

// 使用了代理和block混合
@IBAction func topRightBtnPopupMenueClick(_ sender: Any) {
        
        PopupMenu.showRelyOnView(view: sender as! UIView, titles: TITLES, icons: ICONS, menuWidth: 120, delegate: self) { (popupMenu) in
            popupMenu.priorityDirection = PopupMenuPriorityDirection.none
            popupMenu.borderWidth = 1
            popupMenu.borderColor = UIColor.red
           // popupMenu.rectCorner = [.bottomRight,.bottomLeft]
        }
   }

extension ViewController : PopupMenuDelegate{
    
    func popupMenuDidSelected(index: NSInteger, popupMenu: PopupMenu) {
        if popupMenu.tag == 111 {
            print(["111","222","333","444","555","666","777","888"][index])
        }else{
            print(TITLES[index])
        }
    }
}

需要高度自定义时候,可选代理方法

   @objc func popupMenuDidSelected(index : NSInteger,popupMenu: PopupMenu)
   @objc optional func popupMenuBeganDismiss()
   @objc optional func popupMenuDidDismiss()
   @objc optional func popupMenuBeganShow()
   @objc optional func popupMenudidShow()

Swift4PopupMenuDemo下载链接
Objective-CYBPopupMenu下载链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 当代人面临着两大问题——信息超载和知识碎片化。全世界每天有4000本书出版,超过4亿个字;纽约时报一天的文字量相当...
    谋商学院阅读 351评论 0 0
  • 这个时候的春风,即使吹到心里,也是犹豫不决的。柳树已发芽,木兰盛开,迎春花墙若隐若现着几点黄色。时序轮回,冬...
    徐颢阅读 498评论 0 1
  • 2017.6.26 星期一 晴 今天下午去班里看班了,一个字---累;俩字---真累;仨字儿---好累呀@...
    厦门路小学邵艺馨妈妈阅读 200评论 2 9