MMShareSheet介绍(自定义的分享弹出框组件)

2024-08-23 22:38

本文主要是介绍MMShareSheet介绍(自定义的分享弹出框组件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MMShareSheet

Introduction

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

MMShareSheet is an simple pop-up selection box(ShareSheet) written in pure Swift. Similar to the wechat(or airpay) actionsheet share-UIKit

Rquirements

  • iOS 8.0+
  • Xcode 9 (swift 4)
  • Xcode 8 (swift 3)
    • If you want to run demo in swift3, please switch branch to swift3.0

Installation

Install with Cocoapods
  • pod 'MMShareSheet', '~> 1.0'
  • import MMShareSheet in you code
Copy code into project

克隆代码,然后将components文件夹下面的两个文件 MMShareSheet.swiftMMCardItem.swift加入到你的项目中即可。

Just clone and add MMShareSheet.swift, MMCardItem.swift to your project.

Example

  1. 【类似于微信分享】- Similar to WeChat share

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

  3. 【多组cards】- Multi group cards

  4. 【支持远程icon】- Support remote Icon

类似于微信分享

单组cards

多组cards

支持远程icon

Usage

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) ->() inprint(handler)
}
mmShareSheet.present()

PS:注释

  • create sharesheet && init 【创建并初始化】

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

  • argument【参数描述】

    • title 头部标题
    • cards 事件按钮数组,类型为Array<Array<Dictionary<String, String>>>,里面包含每一行卡片组Array<Dictionary<String, String>>,每一行卡片里面又包含item

mmShareSheet.callBack = { (handler) ->() inprint(handler)
}

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

  • present【弹出sharesheet】

mmShareSheet.present()

Contacts

Github: MinMao-Hub
Email: 1286090267@qq.com

希望喜欢的朋友们给小星星哦☆【star】

这篇关于MMShareSheet介绍(自定义的分享弹出框组件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100694

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

一文详解Java Stream的sorted自定义排序

《一文详解JavaStream的sorted自定义排序》Javastream中的sorted方法是用于对流中的元素进行排序的方法,它可以接受一个comparator参数,用于指定排序规则,sorte... 目录一、sorted 操作的基础原理二、自定义排序的实现方式1. Comparator 接口的 Lam

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor