很久都没有写过东西,只能说实话真的懒了。
2014年过去了,最大得就是转到了IOS开发,其他的大事情都没有发生。2015年了,迎接还是一样的自己(哎,该改变了)。发了两句牢骚,下面进入正题。
支付宝手机客户端,在程序退出到后台的时候整个界面模糊,防止重要的信息在双击两次Home键的时候造成泄漏。这种效果对于安全性比较高得应用比较有用。最近在做一个国有企业的项目,安全性比较高要求我们实现这样得功能,因为这个所以实现了一下这个效果。最后实现了两种思路,一种是我实现的,一种的是我同事写的,这里都把代码放出来,希望能够帮助到别人。
第一种:
在ViewController中注册下面四个通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resignActive:) name:UIApplicationWillResignActiveNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(becomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
然后在UIApplicationWillResignActiveNotification这个通知对应的方法里面,创建当前viewController的屏幕的截屏然后使用算法进行模糊处理,但是这时候这个View是隐藏的。只有UIApplicationDidEnterBackgroundNotification这个通知收到后,才会真正的显示。为什么这样处理,因为我在处理的过程中,我在UIApplicationDidEnterBackgroundNotification这个通知里面执行一些UI的操作不执行,所以就放到了UIApplicationWillResignActiveNotification这个里面去执行,但是还必须隐藏,因为在下拉通知栏的时候这个通知也会被触发,但是这时候不应该显示模糊界面,只有当真正到后台的时候才去执行。等到回到前台的时候,在去掉模糊界面。基本是这个思路,可能有些地方写错了,但是后来也没有修改,真正使用的时候,可以写一个UIViewController的类目去实现这些功能。
第二种:
这种方式是直接创建了UIWindow得截图,然后将其添加到UIWindow中。基本就是这个思路,具体的看代码吧。
好久没写东西了,发现写的太垃圾了。
下面是代码:
第一种方法:csdn上传完了老是不显示,明天再看下
第二种方法:http://download.csdn.net/detail/mengxiangyue/8355039