2013-06-18 75 views
2

有谁知道如何捕获当前视图下面的视图的图像,猜测位图吗?捕获顶部uiview下的uiview图像

因此,假设您将最顶层的视图作为MKMapView(MyMapview)320x460,那么弹出窗口或其他uiview(2ndView)300x300会显示在MyMapview上方。然后第三个视图(3rdView)320x320显示在MyMapview和2ndView之上。

所以你最终

3rdView 320×320 2ndView 300x300的 MyMapview 320x460

现在我要做的就是捕捉2ndView和MyMapview一切的图像,但只有在3rdView的框架。

我想要做的是重建iOS7的外观,而不需要用户在iOS7上。这意味着我希望下面的视图能够展示,但是会变得模糊。所以我想我会在.7制作3rdView alpha,但也包含一个UIImageView作为3rdViews最底层。然后我拍下下面的视图,模糊它,并存储在我的UIImageView中。现在我的3rdViews背景是下方视图的快照,但模糊不清。

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

回答

1

这种方法将改变视图到图像:

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

UIImage * img = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

你可以做的是去除顶视图,然后得到你想要的视角的图像,然后再添加俯视图..希望它可以工作

+0

关闭,但我需要一个所有视图的图像不只是一个。或者,如果我需要分别捕获图像,那么我怎么才能将它们组合成一个 – jdog

+0

好吧,选择你想要的最低视图作为“视图”。假设你在底部有view1,view2,view3和view4在顶部......并且你希望图像中的所有内容都从view1到view3。删除view4,并使用你想要的最低的视图(在我的案例view1)..所以[view1.layer渲染....],它应该把所有的东西放在上面,并把它放在一个图像... – DrDev