在顶部uiview下面捕获uiview的图像

时间:2013-06-18 20:54:29

标签: ios objective-c ios7

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

所以说你有最顶级的视图作为MKMapView(MyMapview)320x460,然后在MyMapview上方显示一个弹出窗口或另一个uiview(2ndView)300x300。然后第三个视图(3rdView)320x320显示在MyMapview和2ndView之上。

所以你最终得到了

3rdView 320x320 2ndView 300x300 MyMapview 320x460

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

我要做的是重新创建iOS7的外观,而无需用户使用iOS7。这意味着我希望下面的视图显示出来,但要模糊。所以我想我会在.7制作第3视图alpha,但也包含UIImageView作为3rdViews最底层。然后我拍下下面的视图快照,模糊它,并存储在我的UIImageView中。现在,我的3rdViews背景是下方视图的快照,但模糊不清。

或者某人有更基于语言的方式吗?我不能在photoshop中创建这个背景图像并将其模糊然后导入它,因为最底层的视图是一个实时mkmapview(意味着我不能快照芝加哥地图,模糊它并导入它,因为地图可能在达拉斯或巴黎。

1 个答案:

答案 0 :(得分:1)

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

UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

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