ios 7 模糊效果

原文:http://damir.me/ios7-blurring-techniques

有时候你会想要使ios7中得某些视图产生模糊效果,那么你该怎么来实现呢?

静态模糊(字面翻译。。)

首先你要明白,这个技术是新的;以前版本的iOS中用到的这种类似的东西被性能所限制,你只能截图当前的view来获得一个image然后渲染模糊。

但是在iOS6中,你用renderInContext:方法来动态的获取截图花费的时间太长。

好消息是iOS7中,UIView类中包含了一个新的有同样功能的方法:drawViewHierarchyInRect:afterScreenUpdates: ,它消耗的时间比renderInContext:少将近15倍。

现在我们改怎么给截图添加模糊效果呢?好吧,Apple已经给我们封装了可以用的方法: https://developer.apple.com/downloads/  搜索sample code  ,在Sample Code from WWDC 2013中找到iOS_UIImageEffects.zip 下载,  再项目里添加UIImage的UIImageEffects分类, 就会有多种模糊效果的类方法供你选择

实时模糊:

我们怎么实现像苹果那样用通知和control实现实时模糊呢?显然,苹果把这个接口给私有化啦。我们用不了啊。

聪明的小点子:

很多地方我们看起来是实时的,但实际上却是静态的,只不过用了一些小技巧而已

就像Andy Matuschak指出的:苹果用一些技巧来完成或者说是假装实时的完成了图片模糊。这种做法通常发生在老设备上,但iPhone5上面看起来是实时的没有作假

然而,让我们把通知中心做个例子:我猜他提到的截屏并且模糊它的技巧是以通知中心为翘板来完成的,然后把这个image作为通知中心的背景(这一段不知道该怎么翻译),当用户发送了这个通知之后,他们会增加这个背景图的高度来假装实时的模糊,这给用户一个这是实时模糊的错觉

UIToolbar

再者你可以用UIToolbar来替代你要模糊的UIView。把UIToolbar的barStyle属性设置为UIBarStyleBlack, 同时把translucent属性设置为YES,然后随意的调整barTintColor。。。。你就完成啦。你会得到一个实时的半透明的模糊view.

这是不是一个简洁的解决方法呢?当然不是,UIToolbar只能被用来作为toolbar。但如果你仅仅想要获得一个实时的模糊view,那么你就不能拒绝这个方法,因为,苹果并不提供相关的api

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值