将UITableView转换为UIImageView

can*_*boy 1 iphone objective-c uitableview uiimage ios

我有一个UITableView,我想抓住它的可见部分,然后把它放进去UIImage.这样做的任何方式?

编辑

下面自我回答

can*_*boy 5

谢谢你的回复.所有答案都适用于UIView,但不适用于UITableView - 至少在表格滚动时没有.滚动时,捕获的图像将显示为黑色或透明.我尝试过类似以下的解决方案.我猜人们认为答案是显而易见的,这就是为什么我被贬低 - 因为顽皮地问这么明显的问题.

无论如何,真正的解决方案是你必须使用表的contentOffset:

- (UIImage *) imageWithTableView:(UITableView *)tableView
{
    UIView *renderedView = tableView;
    CGPoint tableContentOffset = tableView.contentOffset;
    UIGraphicsBeginImageContextWithOptions(renderedView.bounds.size, renderedView.opaque, 0.0);
    CGContextRef contextRef = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(contextRef, 0, -tableContentOffset.y);
    [tableView.layer renderInContext:contextRef];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}
Run Code Online (Sandbox Code Playgroud)