iOS截屏分享功能实现

产品经理今天提出一个新的需求,需要实现类似于每日优鲜、淘宝等客户端的截屏分享的功能,即home+power截屏后弹出分享页面,同时将截取到的图片放在当前页面中展示,如下效果:
截屏后弹出分享页面
之前没有做过这样的需求,但是实现过截屏相关的功能,故初步考虑获取系统截屏事件,然后在该事件中利用程序截屏并按一定比例显示在屏幕上,最后在该事件中调用友盟分享的方式实现了。
首先第一步是考虑如何获取系统截屏的事件,查找之后发现苹果在ios7之后提供了一个新的通知类型:UIApplicationUserDidTakeScreenshotNotification,这个通知会告知注册了此通知的对象已经发生了截屏事件,然后我们就可以在这个事件中实现自己的逻辑。
一、注册通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenShot) name:UIApplicationUserDidTakeScreenshotNotification object:nil];

二、实现接收到通知的方法

- (void)screenShot
{
    //每次截屏之前,删除之间添加的存放图片的imageView,不然重复截屏会不断的截取到之前的页面
    [self.photoIV removeFromSuperview];
    self.photoIV = nil;

    //截屏, 获取所截图片(imageWithScreenshot在后面实现)
    UIImage *image = [self imageWithScreenshot];

    //添加显示
    UIImageView *photoIV = [[UIImageView alloc]initWithImage:image];
    self.photoIV = photoIV;
    photoIV.frame = CGRectMake(20, 50, [UIScreen mainScreen].bounds.size.width-40, [UIScreen mainScreen].bounds.size.height-100);

    /*为imageView添加边框和阴影,以突出显示*/
    //给imageView添加边框
    CALayer * layer = [photoIV layer];
    layer.borderColor = [[UIColor whiteColor] CGColor];
    layer.borderWidth = 5
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值