Mis*_*saq 11 iphone objective-c uitableview ios4 ios
我知道关于这个主题有很多问题,但我真的读了所有这些,但没有找到答案.
我想从当前表视图中截取屏幕截图.我这样做:
-(UIImage *)imageFromCurrentView
{
UIGraphicsBeginImageContextWithOptions(self.tableView.bounds.size, YES, 1);
[self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当我在tableview中向下滚动并制作屏幕截图时,图像的一半是黑色的.我不知道如何从实际的tableview区域制作屏幕截图.
小智 26
这将使您获得TableView的当前可见区域.
如果你想渲染整个tableview,首先需要注意的是,由于内存和其他内容,对于任何超过几十行的内容可能不是一个好主意.最大图像大小在2048x2048,所以你的tableView可能不高于此.
UIView *viewToRender = self.tableView;
CGPoint contentOffset = self.tableView.contentOffset;
UIGraphicsBeginImageContext(viewToRender.bounds.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// KEY: need to translate the context down to the current visible portion of the tablview
CGContextTranslateCTM(ctx, 0, -contentOffset.y);
[viewToRender.layer renderInContext:ctx];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
Dav*_*dez 22
看看我做的这个库,它有非常有用的方法,如:
和更多...
您可以通过Cocoapods将其添加到项目中,也可以通过拖动源文件手动将其添加到项目中.
用法很简单:
UIImage * tableViewScreenshot = [self.tableView screenshot];
Run Code Online (Sandbox Code Playgroud)
我希望你能像我一样找到这个图书馆.
因为 UITableViewCell 是可重用的,所以当滚动表视图时,视口之外的单元格将被排队以供重用,并从表视图中删除。因此,请尝试保持单元格仅在其索引路径上可重用:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = [NSString stringWithFormat:@"Cell_%d_%d", indexPath.section, indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithReuseIdentifier:cellIdentifier] autorelease];
}
...
return cell;
}
Run Code Online (Sandbox Code Playgroud)
尚未测试,不妨尝试一下。是的,这会消耗更多内存,仅用于截图目的。
编辑:如果您关心内存使用情况,也许您可以截取当前视图端口的屏幕截图,然后以编程方式上下滚动以截取屏幕截图的其他部分,最后合并所有屏幕截图。
| 归档时间: |
|
| 查看次数: |
7351 次 |
| 最近记录: |