有没有办法从 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];
}
这是捕获图像的屏幕截图:-
捕获图像包含从上到下的完整表格单元格,请下载它的演示:-
关于iphone - 从 UITableView 创建 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14376249/