MMShareSheet 0.0.3

MMShareSheet 0.0.3

测试测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017年11月
SwiftSwift 版本3.0
SPM支持 SPM

MinMao 维护。



  • 作者:
  • gyh

MMShareSheet




介绍

MMShareSheet 是一个简单的弹出选择框,使用纯 Swift 编写,类似于微信(或支付宝)里面的分享(朋友圈打开网页右上角分享)控件

MMShareSheet 是一个简单的弹出选择框(ShareSheet),使用纯 Swift 编写。类似于微信(或支付宝)的动作表单分享-UIKit

要求

  • iOS 8.0+
  • Xcode 9 (swift 4)
  • Xcode 8 (swift 3)
    • 如果您想在 Swift 3 中运行示例,请切换到 swift3.0 分支

安装

将代码复制到项目中

克隆代码,然后将 components 文件夹下的两个文件 MMShareSheet.swiftMMCardItem.swift 添加到您的项目中。

只需克隆并添加 MMShareSheet.swiftMMCardItem.swift 到您的项目中。

示例

  1. 【类似于微信分享】- 类似于微信分享

  2. 【单组卡片】- 单组卡片(显示组数完全取决于传入的卡片数组)

  3. 【多组卡片】- 多组卡片

  4. 【支持远程图标】- 支持远程图标

用法

let cards = [
    [
        [
            "title": "微信好友",
            "icon": "wechat",
            "handler": "wxfriend"
        ],[
            "title": "微信朋友圈",
            "icon": "moment",
            "handler": "wxmoment"
        ],[
            "title": "QQ好友",
            "icon": "qq",
            "handler": "qqfriend",
        ],[
            "title": "支付宝",
            "icon": "airpay",
            "handler": "airpay",
        ],[
            "title": "新浪微博",
            "icon": "sina",
            "handler": "sinawb",
        ]
    ],[
        [
            "title": "拷贝",
            "icon": "copy_link",
            "handler": "copy"
        ],[
            "title": "在Safari中打开",
            "icon": "safari",
            "handler": "safari"
        ],[
            "title": "收藏",
            "icon": "collection",
            "handler": "collect",
        ],[
            "title": "刷新",
            "icon": "refresh_icon",
            "handler": "refresh",
        ],[
            "title": "举报",
            "icon": "jubao",
            "handler": "report",
        ]
    ]
]
    
let cancelBtn = [
    "title": "取消",
    "handler": "cancel",
    "type": "default",
]
let mmShareSheet = MMShareSheet.init(title: "此网页由wx.keeponrunning.com提供", cards: cards, duration: nil, cancelBtn: cancelBtn)
mmShareSheet.callBack = { (handler) ->() in
    print(handler)
}
mmShareSheet.present()

PS:注释

  • 创建 sharesheet 并初始化【创建并初始化】

MMShareSheet.init(title: "此网页由wx.keeponrunning.com提供", cards: cards, duration: nil, cancelBtn: cancelBtn)

  • 参数描述【参数描述】

    • title 头部标题

    • cards 事件按钮数组,类型为Array<Array<Dictionary<String, String>>>,其中包含每一行卡片组Array<Dictionary<String, String>>,每一行卡片中又包含 item <Dictionary<String, String>>:

       [
           "title": "拍照",
           "icon": "wechat"
           "handler": "camera",
       ]
      
      • title item 标题
      • icon item 图标,可以是本地图片名或远程图片链接
      • handler item 事件唯一标识,回调时根据该值来区别处理事件

    • duration 动画时长

    • cancelBtn 取消按钮属性,类型为 <Dictionary<String, String>;如果设置为 nil 则没有该按钮,必须设置一个属性,默认值为 [ "title": "取消", "handler": "cancel", "type": "default"]

  • 回调【回调】

mmShareSheet.callBack = { (handler) ->() in
    print(handler)
}

handler 该 handler 即为 cards 中 item 的 handler,对应的回调过来

  • 弹出 sharesheet【弹出 sharesheet】

mmShareSheet.present()

贡献

欢迎使用 fork 并提交 pull request。

许可证

MMShareSheet 是遵守 MIT 许可的开源软件。