我想在Document
中显示用户保存在uitableview
目录中的一些图像。我使用下面的简单代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"uploadHistoryCellfa";
BRUploadHistoryCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
cell = [[BRUploadHistoryCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
//Some Other assignemt to UILables Here...
[cell.imagePreview setImage:[UIImage imageWithContentsOfFile:myImagePathInDocument]];
//Some other configurations here ....
return cell;
}
我的问题是:
图像大小约为11-25 MB。我将在每个单元格中加载一个图像。我使用的这段代码是否会导致内存泄漏或类似这样的事情?
答案 0 :(得分:0)
如果屏幕上一次只显示1-2个单元格,那么它不会给您带来太多麻烦。 由于TableView将使用新图像更新已创建单元格的内容。 ( Deque Reusable Concept )
但更好的方法是首先调整图像大小然后再使用。
答案 1 :(得分:0)
11-25 MB实际上是大文件如果你有UITableView
你会有超过5个图像所以它会变成11-25(* 5)所以你应该在tableView上添加它们时调整图像大小,但是如果你会在显示它会减慢你的应用程序的过程中调整它的大小。所以你的第一步是保存尺寸最大为1 mb的已调整大小的图像。
第二步是生成缩略图,然后在单元格上添加thumbnail
图像。
第一个链接:Resize Image
第二个链接:Image Resizing Techniques
imageIO
我的练习是调整图像大小的最快方法,因为它使用CPU而用户不会看到慢滚动问题。
完成所有步骤后,请不要忘记使用foreground thread
和main thread
来表示单元格上的图像。