2013-07-10 47 views
1

我试图让我的应用程序拍摄视图(表格视图)的屏幕截图。这是我用来做这个代码:iOS获取UITableView的可见部分的屏幕截图

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) 
    UIGraphicsBeginImageContextWithOptions(self.tableView.frame.size, NO, [UIScreen mainScreen].scale); //retina display 
else 
    UIGraphicsBeginImageContext(self.tableView.frame.size); 
[self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

这工作,但只有当表视图滚动到最上面,如果不是的话,图像是黑色的。我发现的唯一解决方案是捕获整个表格视图。我只需要可见的部分。我将如何做到这一点?

+0

你可以试试'self.tableView.superview.layer' – Wain

+0

这解决了它....谢谢 – benjih555

回答

2

通过将self.tableView.layer更改为self.tableView.superview.layer来解决。