起因
项目要嵌入云通讯,而云通讯需要有个呼叫中的界面。于是想要实现毛玻璃效果,类似于:
并不难,直接说结果。
结果
两种实现方式:
UIVisualEffectView
vImage
详细说明
- UIVisualEffectView 是iOS8 新增的类。使用如下:
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *view = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
view.frame = self.view.bounds;
[self.view addSubview:view];
详细信息可参考:
使用UIVisualEffectView为视图添加特殊效果
http://www.cocoachina.com/ios/20150604/11987.html
- vImage 是在Accelerate.framework中的。iOS6、7都可用。可以直接使用UIImage+ImageEffects这个图像处理库。一行代码即可:
UIImage *blurImage = [image blurImage];
demo 地址:
备注:这是我认为最简单的方式,足以满足一般需求。不过还有其他实现方式:
Core Image、GPUImage(第三方)之类的。