我有一个地图视图,可以显示SVG地图。
我曾经使用renderInContext
来获取UIImage,但是它的性能并不理想,我听说iOS 7有新的API来做这些事情,drawViewHierarchyInRect
现在我想通过drawViewHierarchyInRect
将此地图视图转换为UIImage或屏幕截图为UIView
然而,
如果我使用drawViewHierarchyInRect,我没有得到任何有效的UIImage,我怀疑它们是相同的原因
snapshotView的代码,
PS:为了表现,我不会将_mapView添加到任何视图中
-(void)drawRect:(CGRect)rect {
UIGraphicsBeginImageContextWithOptions(_mapView.bounds.size, _mapView.opaque, [[UIScreen mainScreen] scale]);
CGContextRef context = UIGraphicsGetCurrentContext();
// [mapView.layer renderInContext:context];
[_mapView drawViewHierarchyInRect:_mapView.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.thumbImageView = [[UIImageView alloc] initWithImage:image];
[self addSubview:self.thumbImageView];
}