【问题标题】:iOS, how to add a blur effect to a background view?iOS,如何为背景视图添加模糊效果?
【发布时间】:2014-06-02 08:28:21
【问题描述】:

我正在尝试向背景视图添加模糊效果。

这是我的背景视图。 https://github.com/martinjuhasz/MJPopupViewController/blob/master/Source/MJPopupBackgroundView.m

我相信这个想法是拍摄父视图的快照,然后为该图像添加模糊效果。

我见过各种方法,不知道哪种方法可行,哪种方法最好。

我也不确定在哪里创建快照。

【问题讨论】:

标签: ios objective-c cocoa-touch uiview


【解决方案1】:

最常见的方法确实可能只是拍摄快照并将其模糊。

您可以通过以下方式拍摄快照:

+ (UIImage *) imageWithView:(UIView *)view
{
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0f);
    [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO];
    UIImage * snapshotImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return snapshotImage;
}

请记住,这是一种快速的 iOS7+ 模糊方法,因此如果您想支持较低版本的 iOS,则需要使用较慢的方法,detailed in this answer。

实现模糊的方法有很多,最流行的两种可能是使用Apple的UIImageEffectsWWDC示例代码can be found here,或者使用GPUImagecan be found here。

【讨论】:

  • 谢谢,我应该在哪里放置/调用该函数?
  • 你可以把它放在你想要的任何地方(最有可能的地方是UIImage 类别)。当你想要获取某个视图的快照时调用它(可能是当你要在它上面放置一个叠加层时)。
【解决方案2】:

允许链接点呈现视图并通过模糊效果影响背景

https://stackoverflow.com/a/52374977/5233180

【讨论】:

  • 这似乎更像是评论而不是答案,或者可能是您链接的问题的重复标志
  • 谢谢你的建议,但我现在没有足够的声誉来添加评论,当我拥有它时,我会在我拥有它之后将它作为评论
猜你喜欢
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 1970-01-01
相关资源
最近更新 更多