【问题标题】:Standard iOS 7 blur implementation标准 iOS 7 模糊实现
【发布时间】:2013-09-20 23:15:03
【问题描述】:

我已经阅读了几十个关于在早期版本的 iOS 中模仿 iOS 7 模糊效果的问题。但这里出现的基本问题是 iOS 7 的 UIKit 真的有一个很好且方便的方法来使 any UIView 模糊吗?这对我来说似乎很合乎逻辑。任何帮助表示赞赏。

【问题讨论】:

    标签: cocoa-touch uikit ios7


    【解决方案1】:

    Apple 提供了示例代码来模糊任何 iOS 7 风格的 UIImage。

    Go to Apple Developer downloads 并在必要时登录。搜索“imageeffects”调出WWDC 2013 Sample Code条目,然后下载iOS_UIImageEffects示例代码。

    在该项目中,UIImage+ImageEffects.h 中有一个 UIImage 类别,您可以将其复制到您自己的项目中,其中包含 applyBlurWithRadius:... 方法。

    您需要将您的项目与 Accelerate 框架相关联。

    这不会自动实时地对视图进行模糊处理 - 为此,请参阅 FXBlurView,它通过自动快照其父视图来执行类似的技术。不过,它可能会非常消耗性能:首先考虑是否可以通过静态模糊图像来实现您想要的效果,而不是尝试“实时”模糊移动内容。

    【讨论】:

      【解决方案2】:

      更新

      从 iOS 8.0(不是 iOS 7)开始,UIKit 提供了UIVisualEffectView 和UIBlurEffect。您可以观看WWDC 2014 Session 419 “Advanced Graphics and Animations for iOS Apps”(或只是download the slides)了解这些课程的介绍。

      原创

      不,它没有。 Apple 并没有公开方便地执行此操作的接口。例如,如果您阅读了this discussion,Rincewind 的回复应该清楚地表明 Apple 没有为此提供公共 API,并且他们使用的私有 API 有严重的限制并且可能会发生变化。

      您必须自己实现模糊效果。您可能希望使用新的-[UIView drawViewHierarchyInRect:afterScreenUpdates:] 方法来捕捉背景视图的外观,然后对其应用CIFilter 以执行模糊。

      【讨论】:

      • 你有链接到论坛中的主题吗?在其中一个 WWDC 视频中,他们展示了它的实现程度,以及一个无法构建的示例项目,因为他们使用的方法不在 API 中。
      • 我已经更新了我的答案,其中包含指向 Apple 开发者论坛讨论的链接。
      • 由于 iOS 8 还没有出来,我需要一个 iOS 7 的解决方案,而你的没有,知道为什么吗? stackoverflow.com/questions/25369789/…
      【解决方案3】:

      UIKit 没有方便的方法来实现这个效果。但是,Github 上有一些库可以轻松实现此效果。 Nick Lockwood's 似乎是最受欢迎的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-09
        • 2013-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多