IOS截图分享,状态栏挡住了UIView处理

至于截图分享这个功能,我也不知是哪个APP始作俑者,这个13装的犀利。。。。

原理简单的说下:iOS 7.0之后加入了一个系统通知 

UIApplicationUserDidTakeScreenshotNotification 截屏触发的通知

也就是 

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

-(void)userDidTakeScreenshot:(id)sender{
}

在这里就不解释了。。。 

我要说的重点是截屏分享是每个界面都有可能发生了,可能发生在任何界面

如果把截屏视图放在 UIView 上那么比较尴尬,看下摩拜单车的,我觉得大部分产品都是一直在模仿从未被超越。。。


想都不用想,肯定要去程序猿做的跟膜拜单车一样。。。。。

那么UIView就需要加载UIwindow上了 。。 

我们现在来获取UIWindow

- (UIWindow *)mainWindow
{
    UIApplication *app = [UIApplication sharedApplication];
    if ([app.delegate respondsToSelector:@selector(window)])
    {
        return [app.delegate window];
    }
    else
    {
        return [app keyWindow];
    }
}

当UIWindow获取之后,或许你在想大功告成了。。。
BUT

蛋疼的事情总是有的 。。。 当你在往UIWindow上加入View时


不用我说了,肯定不行的 。。。  至少要像下图。。。



也就是状态栏上面的字是不要出现的。。   


其实 UIWindow 有个windowLevel 属性

UIWindow *window = [self mainWindow];

windows.windowLevel = UIWindowLevelAlert;


UIWindowLevelAlert :UIView会遮住状态栏的字

UIWindowLevelNormal : 就是正常情况下的死样子

 







 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值