我试图复制苹果公开发布的iOS 7示例屏幕上的模糊背景:

这个问题建议对下面的内容应用CI过滤器,但这是一个完全不同的方法。很明显,iOS 7并没有捕捉到下面视图的内容,原因有很多:

做一些粗略的测试,截取以下视图的截图,并应用CIGaussianBlur过滤器,使用足够大的半径来模拟iOS 7的模糊风格,即使在模拟器上也需要1-2秒。 iOS 7的模糊视图能够模糊动态视图,比如视频或动画,没有明显的延迟。

有没有人可以假设他们可以使用什么框架来创建这种效果,以及是否有可能使用当前的公共api创建类似的效果?

编辑:(来自评论)我们不知道苹果是怎么做的,但我们能做出一些基本的假设吗?我们可以假设他们在使用硬件,对吧?

效果是否在每个视图中都是自包含的,以至于效果实际上不知道它背后是什么?或者,基于模糊的工作原理,模糊背后的内容必须被考虑进去?

如果效果背后的内容是相关的,我们是否可以假设苹果正在接收以下内容的“feed”,并不断地以模糊的方式渲染它们?


当前回答

您可以尝试使用我的自定义视图,它具有模糊背景的功能。它通过假装拍摄背景快照并模糊它来做到这一点,就像苹果的WWDC代码中那样。使用起来很简单。

我还做了一些改进,在不损失性能的情况下伪造动态模糊。我的视图的背景是一个scrollView,它与视图一起滚动,从而为父视图的其余部分提供了模糊效果。

请参阅我的GitHub上的示例和代码

其他回答

这里有一个非常简单的方法:https://github.com/JagCesar/iOS-blur

只要复制UIToolbar的图层就完成了,AMBlurView为你做了。 好吧,它没有控制中心那么模糊,但已经足够模糊了。

记住,iOS7是保密协议。

核心背景实现了预期的iOS 7效果。

https://github.com/justinmfischer/core-background

免责声明:我是这个项目的作者

为什么要麻烦地复制这种效果呢?在你的视图后面画一个UIToolbar。

myView.backgroundColor = [UIColor clearColor];
UIToolbar* bgToolbar = [[UIToolbar alloc] initWithFrame:myView.frame];
bgToolbar.barStyle = UIBarStyleDefault;
[myView.superview insertSubview:bgToolbar belowSubview:myView];

我写了UIView的子类它能在任何自定义视图上产生原生ios7模糊。它使用UIToolbar,但以一种安全的方式改变它的帧,边界,颜色和alpha实时动画。

如果你发现任何问题请告诉我。

https://github.com/ivoleko/ILTranslucentView

您可以尝试使用我的自定义视图,它具有模糊背景的功能。它通过假装拍摄背景快照并模糊它来做到这一点,就像苹果的WWDC代码中那样。使用起来很简单。

我还做了一些改进,在不损失性能的情况下伪造动态模糊。我的视图的背景是一个scrollView,它与视图一起滚动,从而为父视图的其余部分提供了模糊效果。

请参阅我的GitHub上的示例和代码