截图分享
来源:互联网 发布:柳州市一职校淘宝地址 编辑:程序博客网 时间:2024/06/07 19:54
很多App都有分享的功能,第三方分享需要自己去研究一下shareSDK,研究文档去进行集成,今天我就简单的只介绍一下截图这个功能。
构建button
@property (nonatomic,strong)UIButton *memberBut;
- (UIButton *)memberBut{ if (!_memberBut) { _memberBut = [UIButton buttonWithType:UIButtonTypeCustom]; _memberBut.backgroundColor = [UIColor whiteColor]; [_memberBut setTitleColor:GetColor(108, 189, 153, 1) forState:UIControlStateNormal]; } [_memberBut setImage:IMGNAME(@"share") forState:UIControlStateNormal]; [_memberBut addTarget:self action:@selector(takeScreenAndShare:) forControlEvents:UIControlEventTouchUpInside]; return _memberBut;}
实现方法
- (void)takeScreenAndShare:(UIButton *)sender{//截取当前屏幕 UIImage *screenImage = [self captureScreen]; NSData *data = UIImagePNGRepresentation(screenImage); UIImage *imgBmp = [UIImage imageWithData:data]; //建立UIImage为bmp格式 NSData *dJpeg = UIImageJPEGRepresentation(imgBmp,1.0);//从bmp格式的Image转为jpeg格式的NSData,其实也可以从任意格式的Image转,不仅限于bmp self.imgJPeg = [UIImage imageWithData:dJpeg];//建立UIIMage为jpeg格式 if ([WeiboSDK isWeiboAppInstalled]) { [self.view addSubview:self.aler]; } else { NSArray *imageArray = @[self.imgJPeg];//@[[UIImage imageNamed:@"cryface"]]; NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; if (imageArray) { [shareParams SSDKSetupShareParamsByText:@"" images:imageArray url:nil title:@"" type:SSDKContentTypeAuto]; }> 要显示菜单的视图,iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view对象,iPhone可以传nil不会影响 [ShareSDK showShareActionSheet:nil items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) { switch (state) { case SSDKResponseStateSuccess:{ NSLog(@"分享成功"); } case SSDKResponseStateFail:{ NSLog(@"失败"); } default: break; } } ]; }> NSData *dBmp = [self buildBmpData];> 建立一个NSdata,内容为bmp格式:前面54字节为格式,后面的为rgb> UIImageWriteToSavedPhotosAlbum(self.imgJPeg,nil,nil,nil);//保存到相册}- (UIImage *)captureScreen {UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 0.0);//开启一个图片的层,大小为当前屏幕 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//直接把当前屏幕的view填充进当前图层 UIImage *img = UIGraphicsGetImageFromCurrentImageContext();//从图层上,获取一张image,相当于照一张相 UIGraphicsEndImageContext(); return img;}/* UIGraphicsBeginImageContext(viewToCapture.bounds.size);//截得图比较模糊 UIGraphicsBeginImageContextWithOptions(viewToCapture.bounds.size, NO, 0.0);//原图 */
三方分享
- (void)action_ShareWithNumber:(NSInteger)number{ NSLog(@"%ld",number); NSArray *imageArray = @[self.imgJPeg];//@[[UIImage imageNamed:@"cryface"]]; NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; if (imageArray) { [shareParams SSDKSetupShareParamsByText:@"" images:imageArray url:nil title:@"" type:SSDKContentTypeAuto]; } [shareParams SSDKEnableUseClientShare];> 微博 if (number == 0) { [ShareSDK share:SSDKPlatformTypeSinaWeibo parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { }]; }> QQ空间 if (number == 1) { [ShareSDK share:SSDKPlatformSubTypeQZone parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { }]; }> QQ好友 if (number == 2) { [ShareSDK share:SSDKPlatformSubTypeQQFriend parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { }]; }> 微信好友 if (number == 3) { [ShareSDK share:SSDKPlatformSubTypeWechatSession parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { }]; }> 微信朋友圈 if (number == 4) { [ShareSDK share:SSDKPlatformSubTypeWechatTimeline parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { }]; }> 微信收藏 if (number == 5) { [ShareSDK share:SSDKPlatformSubTypeWechatFav parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { }]; }}
以上就是截图进行三方分享的简单demo,如果要使用代码,记得去集成哦~
0 0
- 截图分享
- Android系统截图分享
- Android 普通View截图 RecyclerView截图 ScrollView截图分享
- 【Cocos2d-x】截图分享功能
- 【Cocos2d-x】截图分享功能
- Android代码截图并分享
- 分享一个gif截图工具
- Android 实现截图和分享
- 百度分享代码+演示截图
- 轻松获取布局截图 或友盟分享截图
- Office2010 分享之一 Word窗口截图
- 分享WPF实现屏幕截图程序详解
- 分享一些网站及系统功能截图
- Android截图并分享的小例子
- [分享]牛牛截图控件最终版
- 分享基于phantomjs的web截图
- 分享内容的截图的实现方法
- Android长截图与长图分享
- redis -- 事务
- DOM操作 如何添加、移除、移动、复制、创建和查找节点等
- 简单-自定义ViewGroup实现标签云
- (4.2.37)Android 沉浸式状态栏的三种实现方式
- 上下扫描以及扩散扫描
- 截图分享
- ECharts画动态仪表盘+柱状图(ajax获取+循环画图)
- @Temporal
- MY FIRST CSDN DAY
- 第七周项目1-建立顺序环形队列算法库
- 虚拟机怎么设置u盘启动
- thinkphp连接多数据库 数据库切换
- iOS NSEnumerator的用法
- Golang1.7 Http和Tcp使用同一个端口做服务