【问题标题】:Capture image of uiview underneath top uiview捕获顶部uiview下方的uiview图像
【发布时间】:2013-06-18 20:54:28
【问题描述】:

有谁知道如何或是否可以捕获我当前视图下方的视图的图像、猜测位图?

假设您有一个 MKMapView (MyMapview) 320x460 的最顶层视图,然后在 MyMapview 上方显示一个弹出窗口或另一个 uiview (2ndView)300x300。然后第三个视图 (3rdView)320x320 显示在 MyMapview 和 2ndView 的顶部。

所以你最终得到了

第三视图 320x320 第二视图 300x300 MyMapview 320x460

现在我要做的是捕捉 2ndView 和 MyMapview 上所有内容的图像,但仅限于 3rdView 的框架下。

我想要做的是重新创建 iOS7 的外观,而不需要用户使用 iOS7。这意味着我希望下面的视图能够显示出来,但要模糊。所以我想我会在 0.7 处制作 3rdView alpha,但也包含一个 UIImageView 作为 3rdViews 最底层。然后我拍摄下面的视图快照,将其模糊,并存储在我的 UIImageView 中。现在我的 3rdViews 背景是下面视图的快照,但模糊了。

或者有人有更基于语言的方式来做到这一点?我无法在 Photoshop 中创建此背景图像并对其进行模糊处理,然后将其导入,因为最底部的视图是实时 mkmapview(这意味着我无法对芝加哥的地图进行快照,将其模糊并导入它,因为地图可能在达拉斯或巴黎。

【问题讨论】:

    标签: ios objective-c ios7


    【解决方案1】:

    此方法会将视图转换为图像:

    UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    
    UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    

    您可以做的是删除顶视图,然后获取所需视图的图像并再次添加顶视图。希望它有效

    【讨论】:

    • 关闭,但我需要一张下面所有视图的图像,而不仅仅是一个。或者,如果我需要单独捕获图像,那么如何将它们合成为一个。
    • 好的,选择您想要的最低视图作为“视图”。假设您在底部有 view1,在顶部有 view2、view3 和 view4 ......并且您想要图像中从 view1 到 view3 的所有内容。删除view4,并使用你想要的最低视图(在我的情况下是view1)..所以[view1.layer渲染......],它应该把所有东西放在上面并将它放在一个图像中......
    猜你喜欢
    • 2012-12-12
    • 2017-07-26
    • 2013-06-13
    • 1970-01-01
    • 2010-12-26
    • 2020-09-08
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    相关资源
    最近更新 更多