Frosted Glass(iOS 7模糊)效果

10 浏览
0 Comments

Frosted Glass(iOS 7模糊)效果

我正在尝试在UIImageView中应用磨砂玻璃效果

我试图实现我在这个问题中找到的方法,但结果并不令人满意。

我想要的效果类似于这样:

磨砂玻璃效果

此外,我们可以看到iOS 7在许多地方都使用了这种效果。我们如何复制它呢?

0
0 Comments

Frosted Glass (iOS 7 Blur) Effect的问题出现的原因是因为Core Image for the iOS在与OS X版本的库进行对比时仍然不完整。根据研究,有两种解决方案:简单的解决方案是使用ios-image-filters库,而更复杂的解决方案是使用GPUImage库。在苹果宣布iOS 7之后,一些开发人员找到了绕过苹果默认iOS应用程序的解决方法,但这依赖于iOS 7 SDK的使用,并且如果苹果更改UIToolbar,可能会存在风险。在WWDC 2013(Session 226 - Implementing Engaging UI on iOS)中,苹果提到他们将提供一个名为UIImage+ImageEffects的分类类,通过这个分类类,可以在静态UIImage上应用模糊效果。最后,在iOS 8中,苹果发布了可以轻松实现实时模糊的新类,使用UIVisualEffect和UIVisualEffectView,可以快速为应用程序添加实时模糊。为了达到上面所述的效果,可能还需要将高斯模糊与白色混合,可以参考Ray Wenderlich的教程来学习如何使用这些类。关于自定义过滤器,可以查看其他过滤器的工作原理作为参考,使用自定义片段着色器创建一个新的自定义过滤器,并修改提供的片段着色器以在OpenGL ES中工作。使用工具栏的层进行模糊效果是非常冒险的,如果苹果在未来的某个发布点更改UIToolbar的视图堆栈,将会导致应用程序崩溃。

0
0 Comments

Frosted Glass (iOS 7 Blur) Effect是指在iOS 7中实现的毛玻璃模糊效果。下面的内容提供了使用UIImageEffects库实现该效果的方法。

首先,我们需要引入UIImageEffects库:

#import "UIImageEffects.h"

然后,我们可以将毛玻璃效果应用到一个UIImageView上的UIImage对象上:

self.yourImageView.image = [UIImageEffects imageByApplyingLightEffectToImage:[UIImage imageNamed:@"yourImage.png"]];

通过使用UIImageEffects库中的imageByApplyingLightEffectToImage方法,我们可以将指定的UIImage对象应用毛玻璃效果,并将结果设置为UIImageView的image属性。

这样,我们就可以实现iOS 7中的毛玻璃效果了。

需要注意的是,使用UIImageEffects库需要将其代码从苹果的开发者文库中拷贝出来。可以通过访问苹果的开发者文库链接来获取UIImageEffects的代码。

以上就是实现Frosted Glass (iOS 7 Blur) Effect的原因以及解决方法的整理。

0
0 Comments

在iOS 7和8中,Frosted Glass(iOS 7 Blur)效果的问题出现的原因是因为在iOS 7中没有提供直接实现模糊效果的方法。解决这个问题的方法是通过使用UIToolbar或UIVisualEffectView来模拟模糊效果。

以上的解决方法是适用于iOS 7和8的,而且不需要使用CoreImage或CoreGraphics库。代码中的方法addBlurToView:可以将模糊效果添加到任何视图中。如果目标版本是iOS 7以前的,需要在else块中判断iOS版本。

这个解决方法可以应用于任何视图,不仅仅是图片。

另外,有人提出了一个问题,问在不断添加和移除模糊视图的情况下,是否需要每次“从父视图中移除视图”时都移除约束。对此,可以选择隐藏视图而不是移除视图。

还某些情况下了在旧款iPad上(如iPad2)UIBlurEffect不起作用的问题。这是因为旧设备不支持UIBlurEffect导致的。

以上的解决方法在iOS 7和8中实现了Frosted Glass(iOS 7 Blur)效果,并且可以应用于任何视图。

0