仿新浪微博截圖分享
先說(shuō)一下吏砂,本人就在昨天刷微博的時(shí)候無(wú)意間截屏了一下發(fā)現(xiàn)了這樣一個(gè)效果
我就突發(fā)奇想仿著做一下,終于經(jīng)過(guò)一上午的努力第一版就誕生了收恢,但是還有很多需要優(yōu)化的地方比搭,大神們不喜勿噴胺兑ā!
話(huà)不多說(shuō)了衫樊,進(jìn)入正題做這樣的功能飒赃,主要分享部分,一個(gè)是截獲用戶(hù)的截屏事件科侈,二是視圖的添加
一载佳、獲取用戶(hù)的截屏事件
目前有兩種方式:
1.注冊(cè)通知 iOS7提供一個(gè)嶄新的推送方法:UIApplicationUserDidTakeScreenshotNotification。只要像往常一樣訂閱即可知道什么時(shí)候截圖了臀栈。
注意:UIApplicationUserDidTakeScreenshotNotification 將會(huì)在截圖完成之后顯示∧杌郏現(xiàn)在在截圖截取之前無(wú)法得到通知。
希望蘋(píng)果會(huì)在iOS8當(dāng)中增加 UIApplicationUserWillTakeScreenshotNotification权薯。(只有did, 沒(méi)有will顯然不是蘋(píng)果的風(fēng)格...)
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(userDidTakeScreenshot:)
name:UIApplicationUserDidTakeScreenshotNotification object:nil];
(void)userDidTakeScreenshot:(NSNotification *)notification
{
NSLog(@"檢測(cè)到截屏");
}
2.第二種是通過(guò)開(kāi)源庫(kù)ShotBlocker姑躲,但是需要獲取用戶(hù)的相冊(cè)的權(quán)限
[[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(@"點(diǎn)擊的是QQ分享");
}else if (type==WeiXinSelectSheetType){
NSLog(@"點(diǎn)擊的是微信好友分享");
}else if (type==WeiXinCircleSelectSheetType){
NSLog(@"點(diǎn)擊的是微信朋友圈分享");
}
}];
[popView show];
[keyWindow addSubview:popView];
usage
把DPScreenshots文件導(dǎo)入項(xiàng)目中然后監(jiān)聽(tīng)截屏事件,然后添加視圖即可黍析!