# IFMShare
IFMShare([Swift版](https://github.com/liugangios/SwiftShare))是一个iOS客户端应用内分享的界面、功能一体化解决方案,使用简单、优雅,界面和功能高度可定制化。分享功能直接调用iOS系统内预制分享功能,无需去各种繁杂的社会化分享平台注册账号、无需下载导入各种SDK,使用非常简单。
# Demo展示
![图片展示](http://upload-images.jianshu.io/upload_images/953487-f3ff921129424626.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![图片展示](http://upload-images.jianshu.io/upload_images/953487-fba1892bb8d8bdf0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# GIF展示
![动图展示](http://upload-images.jianshu.io/upload_images/953487-1b3b9c5eb4ea7ec7.gif?imageMogr2/auto-orient/strip)
# 使用
在项目中导入`IFMShareView.h`,执行以下代码即可
```
IFMShareView *shareView = [[IFMShareView alloc] initWithItems:@[IFMPlatformNameSms,IFMPlatformNameEmail,IFMPlatformNameQQ,IFMPlatformNameWechat] itemSize:CGSizeMake(80,100) DisplayLine:YES];
//设置分享内容
[shareView addText:@"分享测试"];
[shareView addURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[shareView addImage:image];
[shareView showFromControlle:self];
```
# 介绍
IFMShare由三个类组成,`IFMShareView、IFMShareItem`和`IFMShareItemCell`。其中`IFMShareItemCell`是`UICollectionView`的单元格,用户可以忽略它,
### IFMShareItem
`IFMShareItem`是每一个要展示的`cell`的数据源,它有三种初始化方法,
```
- (instancetype)initWithImage:(UIImage *)image
title:(NSString *)title
action:(shareHandle)action;
- (instancetype)initWithImage:(UIImage *)image
title:(NSString *)title
actionName:(NSString *)actionName;
- (instancetype)initWithPlatformName:(NSString *)platformName;
```
`- (instancetype)initWithPlatformName:(NSString *)platformName;`只需要传入预制的分享平台名称,比如:
```
IFMPlatformNameSina; // 新浪微博
IFMPlatformNameQQ; //QQ
IFMPlatformNameEmail; //邮箱
IFMPlatformNameSms; //短信
```
即可快速初始化一个包括`title、image和action`的分享`cell`。
如果提供的image不符合您的要求,您可以使用以下方法初始化一个`IFMShareItem`。
```
- (instancetype)initWithImage:(UIImage *)image
title:(NSString *)title
actionName:(NSString *)actionName;
```
其中`actionName`传入预制的分享`action`,比如:
```
IFMPlatformHandleSina; // 新浪微博
IFMPlatformHandleQQ; //QQ
IFMPlatformHandleEmail; //邮箱
IFMPlatformHandleSms; //短信
```
如果预制的`action`不能满足您的分享内容类型,还可以使用以下方法,
```
- (instancetype)initWithImage:(UIImage *)image
title:(NSString *)title
action:(shareHandle)action;
```
`action`是一个Block块,类型如下,
```
typedef void (^__nullable shareHandle)(IFMShareItem *item);
```
您可以在这个Block块里写入点击按钮以后需要执行的动作。
### IFMShareView
`IFMShareView`是包含了所有展示控件的View,提供了三种初始化方法
```
- (instancetype)initWithItems:(NSArray *)items itemSize:(CGSize)itemSize DisplayLine:(BOOL)inLine;
- (instancetype)initWithShareItems:(NSArray *)shareItems functionItems:(NSArray *)functionItems itemSize:(CGSize)itemSize;
- (instancetype)initWithItems:(NSArray *)items countEveryRow:(NSInteger)count;//默认九宫格样式
```
如果您要展示的是一个单行的分享界面,使用以下方法:
```
- (instancetype)initWithItems:(NSArray *)items itemSize:(CGSize)itemSize DisplayLine:(BOOL)inLine;
```
如果是双行,您一定猜到了,使用以下方法:
```
- (instancetype)initWithShareItems:(NSArray *)shareItems functionItems:(NSArray *)functionItems itemSize:(CGSize)itemSize;
```
其中`itemSize`是需要传入的`IFMShareItemCell`大小,IFMShareView会根据传入的`itemSize`自动调整自己的大小。如果您想使用默认大小,传入一个预制的宏`IFMShareItemCellSize`,为`CGSizeMake(80, 100)`,`shareItems`是第一行的分享性质的按钮数组,`functionItems`是第二行功能性质的按钮数组,存放的是`IFMShareItem`或者预制的分享平台名称,比如:`IFMPlatformNameSina、IFMPlatformNameEmail`。
如果您要使用的分享界面是一个九宫格类型的,使用以下初始化方法
```
- (instancetype)initWithItems:(NSArray *)items countEveryRow:(NSInteger)count;//默认九宫格样式
```
`count`表示每一行展示的item个数,
# 个性化
除了以上功能,`IFMShare`还提供了丰富的可定制属性。
```
@property (nullable, nonatomic, strong) UIView *headerView;//头部分享标题
@property (nullable, nonatomic, strong) UIView *footerView;//尾部其他自定义View
```
可以传入用户绘制好的头部和尾部的View,`IFMShareView`会将它们放在合适的位置。
```
@property (nonatomic, strong) UIButton *cancleButton;//取消
```
用户可以获取到底部取消按钮,修改它的背景色、标题、圆角等。
```
@property (nullable, nonatomic, strong) UIColor *middleLineColor;//分割线颜色
@property (nonatomic) CGFloat middleLineEdgeSpace;//分割线边距
@property (nonatomic) CGFloat middleTopSpace;//分割线距离上部按钮距离
@property (nonatomic) CGFloat middleBottomSpace;//分割线距离下部按钮距离
```
可以设置分割线的各种属性,以及以下属性:
```
@property (nullable, nonatomic, strong) UIColor *containViewColor;
@property (nullable, nonatomic, strong) UIFont *itemTitleFont; //标题字体大小
@property (nullable, nonatomic, strong) UIColor *itemTitleColor; //标题字体颜色
@property (nonatomic) UIEdgeInsets bodyViewEdgeInsets;//中间bodyView的边距;
@property (nonatomic) CGSize itemSize; //item大小
@property (nonatomic) CGSize itemImageSize; //item中image大小
@property (nonatomic) BOOL showBorderLine; //是否显示cell边界线
@property (nonatomic) CGFloat itemImageTopSpace; //item图片距离顶部大小
@property (nonatomic) CGFloat iconAndTitleSpace; //item图片和文字距离
@property (nonatomic) CGFloat itemSpace;//item横向间距
@property (nonatomic) BOOL showsHorizontalScrollIndicator;//是否显示横向滚动条
@property (nonatomic) BOOL showCancleButton;//是否显示取消按钮
```
您可以试着玩一玩。使用过程中有任何问题,请在issue中提出,或者邮件联系我,或者关注我的新浪微博[@小刘大刚](http://weibo.com/liugangios/home?wvr=5&sudaref=www.baidu.com&retcode=6102),我会及时修改更新,谢谢您的支持,希望我的代码可以给您灵感,同时也帮助我成长,世界因为开源而美好。
# TODO
* [ ] 支持cocoapods
* [ ] 加入更多预制平台
* [ ] 介绍对比4种分享方案
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
IFMShare是一个iOS客户端应用内分享的界面、功能一体化解决方案,使用简单、优雅,界面和功能高度可定制化。分享功能直接调用iOS系统内预制分享功能,无需去各种繁杂的社会化分享平台注册账号、无需下载导入各种SDK,使用非常简单。 软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
资源推荐
资源详情
资源评论
收起资源包目录
IFMShare是一个iOS客户端应用内分享的界面、功能一体化解决方案,使用简单、优雅,界面和功能高度可定制化。分享功能直接调用iOS系统内预制分享功能,无需去各种繁杂的社会化分享平台注册账号、无需下载导入各种SDK,使用非常简单。.zip (54个子文件)
cm
LICENSE 1KB
IFMShareDemo
ViewController.h 214B
Base.lproj
Main.storyboard 7KB
LaunchScreen.storyboard 2KB
AppDelegate.h 277B
AppDelegate.m 2KB
main.m 334B
ViewController.m 6KB
Info.plist 1KB
Assets.xcassets
Contents.json 62B
AppIcon.appiconset
Contents.json 1KB
function
function_collection.imageset
more_icon_collection@3x.png 3KB
Contents.json 370B
more_icon_collection@2x.png 2KB
function_font.imageset
Contents.json 352B
Action_Font@3x.png 2KB
Action_Font@2x.png 2KB
Contents.json 62B
function_copy.imageset
Contents.json 352B
Action_Copy@3x.png 1KB
Action_Copy@2x.png 825B
function_link.imageset
more_icon_link@3x.png 2KB
Contents.json 358B
more_icon_link@2x.png 1006B
function_refresh.imageset
Action_Refresh@3x.png 2KB
Contents.json 358B
Action_Refresh@2x.png 1KB
function_expose.imageset
Contents.json 356B
Action_Expose@2x.png 2KB
Action_Expose@3x.png 3KB
IFMShareDemo.xcodeproj
project.pbxproj 15KB
project.xcworkspace
contents.xcworkspacedata 157B
.gitignore 1KB
README.md 7KB
IFMShare
IFMShareItemCell.h 834B
IFMShareImage.bundle
share_alipay@2x.png 2KB
share_safari@2x.png 3KB
share_email@2x.png 1KB
share_qq@3x.png 3KB
share_sms@2x.png 2KB
share_alipay@3x.png 3KB
share_email@3x.png 2KB
share_sms@3x.png 3KB
share_weixin@2x.png 2KB
share_sina@3x.png 4KB
share_sina@2x.png 3KB
share_weixin.png 2KB
share_safari@3x.png 4KB
share_qq@2x.png 3KB
IFMShareItemCell.m 2KB
IFMShareView.m 15KB
IFMShareItem.h 4KB
IFMShareItem.m 10KB
IFMShareView.h 2KB
共 54 条
- 1
资源评论
妄北y
- 粉丝: 9726
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- alu.v
- H21-282学习参考.pdf
- QuestionTwo.java
- QuestionOne.java
- AWS Certified Solutions Architect Study Guide -SAA-C03 .docx
- 校园小情书微信小程序源码 社区小程序前后端开源 校园表白墙交友小程序.rar
- OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 南京邮电大学数学实验:熟练掌握 Matlab 软件的基本命令和操作
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功