在iOS 5和iOS 6中捕获不同的MKMapView截图?

时间:2012-12-12 07:26:21

标签: iphone ios5 ios6 mkmapview

我想获得mapview的截图。所以我用下面的代码。此代码在ipad和模拟器中完美运行,但在ipod上运行不正常。 iPad有iOS 6.0,我的xcode是4.2.1,iPod有iOS 5.0。

- (UIImage*) renderToImage
{
    UIGraphicsBeginImageContext(mapView.frame.size);
    [mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext(); 
    return viewImage;
}

问题是,我在iPad,iPod和模拟器中有相同的图像,但没有相应的手动屏幕捕获和程序屏幕捕获的名称。在iPod中名称非常大,同时iPad和模拟器中的名称是正常的还有一些名字在iPod中是看不见的。这就是我的问题。

以下图片是:

此图片属于iPod手动屏幕截图。

enter image description here

此图片属于iPod程序屏幕截图。

enter image description here

我不知道问题出在哪里。请帮助我。

2 个答案:

答案 0 :(得分:1)

这里的问题是UIGraphicsBeginImageContext(mapView.frame.size);。我刚将其替换为UIGraphicsBeginImageContextWithOptions(mapView.frame.size, NO, 0.0);。然后它在iOS 5.0中工作。

答案 1 :(得分:0)

你可以通过在每种情况下查看应用程序来判断,不是你的截图代码神奇地创建了不同的地图,底层地图是不同的