仿新浪微博截屏分享

仿新浪微博截图分享

先说一下,本人就在昨天刷微博的时候无意间截屏了一下发现了这样一个效果

仿新浪微博截屏分享_第1张图片

我就突发奇想仿着做一下,终于经过一上午的努力第一版就诞生了,但是还有很多需要优化的地方,大神们不喜勿喷啊!

仿新浪微博截屏分享_第2张图片

话不多说了,进入正题做这样的功能,主要分享部分,一个是截获用户的截屏事件,二是视图的添加

一、获取用户的截屏事件

目前有两种方式:

1.注册通知 iOS7提供一个崭新的推送方法:UIApplicationUserDidTakeScreenshotNotification。只要像往常一样订阅即可知道什么时候截图了。

注意:UIApplicationUserDidTakeScreenshotNotification 将会在截图完成之后显示。现在在截图截取之前无法得到通知。

希望苹果会在iOS8当中增加 UIApplicationUserWillTakeScreenshotNotification。(只有did, 没有will显然不是苹果的风格...)

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(userDidTakeScreenshot:)

name:UIApplicationUserDidTakeScreenshotNotification object:nil];

(void)userDidTakeScreenshot:(NSNotification *)notification

{

NSLog(@"检测到截屏");

}

2.第二种是通过开源库ShotBlocker,但是需要获取用户的相册的权限

[[ShotBlocker sharedManager] detectScreenshotWithImageBlock:^(UIImage *screenshot) {

NSLog(@"Screenshot! %@", screenshot);

}

二、视图添加

UIWindow *keyWindow=[[UIApplication sharedApplication]keyWindow];

DPScreenshotsPopView *popView=[DPScreenshotsPopView initWithScreenShots:screenshot selectSheetBlock:^(SelectSheetType type) {

if (type==QQSelectSheetType) {

NSLog(@"点击的是QQ分享");

}else if (type==WeiXinSelectSheetType){

NSLog(@"点击的是微信好友分享");

}else if (type==WeiXinCircleSelectSheetType){

NSLog(@"点击的是微信朋友圈分享");

}

}];

[popView show];

[keyWindow addSubview:popView];

usage

把DPScreenshots文件导入项目中然后监听截屏事件,然后添加视图即可!

仿新浪微博截屏分享_第3张图片

你可能感兴趣的:(仿新浪微博截屏分享)