iphone - 从 UITableView 创建 UIImage

标签 iphone ios objective-c uitableview uiimage

有没有办法从 UITableView 中创建一个 UIImage

我知道这段代码会从给定的 UIView 中绘制一个 UIImage:

-(UIImage*) makeImageOutOfView:(UIView*)view {

    UIGraphicsBeginImageContext(view.bounds.size);

    [view.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return viewImage;
}

但它只会创建一个与表格框架大小相同的图像。我想创建一个图像来显示整个表格的内容。另一个问题是,不仅创建的图像仅限于表格的框架,而且在滚动表格后创建图像时会产生非常奇怪的结果(图像中仅显示前 6 个中可见的单元格,仅此而已,其他可见单元格未绘制..)

编辑 - 我想创建一个从 tableView 的内容中绘制的图像,而不是设置 tableView 的背景来显示图像..

最佳答案

我只是为您创建了一个 DEMO,希望它能帮助您像这样捕获表格图像:-

-(IBAction)savebutn:(id)sender
{
    [tbl reloadData];

    CGRect frame = tbl.frame;
    frame.size.height = tbl.contentSize.height;
    tbl.frame = frame;

    UIGraphicsBeginImageContext(tbl.bounds.size);
    [tbl.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *saveImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();
    NSData *imageData = UIImagePNGRepresentation(saveImage);
    NSFileManager *fileMan = [NSFileManager defaultManager];

    NSString *fileName = [NSString stringWithFormat:@"%d.png",1];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
    [fileMan createFileAtPath:pdfFileName contents:imageData attributes:nil];



}

这是捕获图像的屏幕截图:-

enter image description here

捕获图像包含从上到下的完整表格单元格,请下载它的演示:-

http://www.sendspace.com/file/w48sod

关于iphone - 从 UITableView 创建 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14376249/

相关文章:

添加 cordova fabric 插件后 iOS 构建失败

ios - 重复忙圈动画

iphone - ios - UICollectionView 在水平分页时更改默认偏移量

ios - 从解析中拉出对象后如何从 parse.com 对象访问其他属性/列(swift)

ios - tableview 使应用程序变慢,并需要时间来获取数据 - swiftyJSON

objective-c - RE : autorotating, 带有属性字符串的滚动、带项目符号、缩进的 UIScrollView

c++ - 是否可以用 C++ 编写应用程序的核心,然后将 Obj-C 和 Cocoa 用于 UI?

iphone - 需要在objective-c中定义一个 "modifiable"全局变量

ios - 如何检测 iPhone 5c 的颜色?

ios - Scenekit - 我如何拖放