【问题标题】:iOS take a screen snapshot only of background viewiOS 仅拍摄背景视图的屏幕快照
【发布时间】:2013-12-05 16:11:37
【问题描述】:

我有一个 UIView(背景),其中包含另一个 UIView(自定义 UI 元素)。

按下按钮将向上滑动最顶部的视图以显示更多选项。

我想对屏幕上的所有内容进行快照,但最顶部的视图及其包含的项目除外。这将用于给 iOS7 模糊效果,但正在动画的 UI 也放在屏幕截图中,这显然破坏了效果。

这是我的代码,它拍摄了整个屏幕(包括最顶部的视图)的快照。

当前代码:

-(UIImage *)blurredSnapshot
{

    UIGraphicsBeginImageContext(self.view.frame.size);

    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

    // Get the snapshot
    UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext();

    // Now apply the blur effect using Apple's UIImageEffect category
    UIImage *blurredSnapshotImage = [snapshotImage applyLightEffect];

    UIGraphicsEndImageContext();

    return blurredSnapshotImage;

}

这甚至可能吗?谢谢!

【问题讨论】:

    标签: uiview ios7 uiimage


    【解决方案1】:

    您可以在制作顶视图动画之前拍摄快照。 GitHub 和 CocoaControls 上有一些公共库,例如 FXBlurView。你应该检查一下。

    【讨论】:

    • 这实际上是我已经在做的事情。问题是顶视图已经在所有时间显示了一半。这有一个技术原因,我不会讨论,但因为它已经显示,所以屏幕截图包含它。
    • 我不知道这是否会在视觉上结束,但您可以隐藏顶视图,设置模糊视图并取消隐藏顶视图。我不确定视图是否会轻弹将难以察觉。
    • 另一个想法是,如果背景有些静态,您可以编辑您的库以始终使用不包含顶视图的预保存图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2014-12-03
    • 1970-01-01
    相关资源
    最近更新 更多