gpt4 book ai didi

iphone - Apple 在导航 Controller 内延迟加载图像,恢复为占位符图像

转载 作者:行者123 更新时间:2023-11-29 04:59:32 25 4
gpt4 key购买 nike

我实现了 Apple 的 LazyTableImages 项目 ( link ),但在我的版本中,我使用 RestKit 来获取数据,并且我的 UItableviewcontroller 被推送到导航堆栈上。

所以我避开苹果在应用程序委托(delegate)中所做的任何事情来获取 xml。我不认为这是问题所在。我的问题是,当您使用导航后退按钮退出 UITableviewcontroller 或访问另一个选项卡栏项目并返回时,之前加载的图像会显示,但会立即加载占位符图像。基本上,情况恰恰相反。

这就像 UITableview 缓存的数据,所以当你回来时它会干扰惰性表图像。我需要知道是否有人在必须退出的情况下实现了此代码?

编辑:

看起来 imageDownloader 第二次不是 nil,这导致图像无法加载。我仍在研究如何绕过它。当然,我可以直接删除条件,但我不知道这是否对性能“不利”。

imageDownloadsInProgress 是一个可变字典,即使您退出,仍然保留其所有数据。现在它已经成为一个不同的问题,如果用户回击或偏离当前 View ,如何删除 imageDownloadsInProgress。

imageDownloadsInProgress 被保留,但我在 dealloc 方法中添加了 [imagesDownloadsInProgress release],但我认为它不会运行。

-(void)startEventImageDownload:(WhatsonEvent *)eventRecord forIndexPath:(NSIndexPath *)indexPath
{

EventImageDownloader *imageDownloader = [imageDownloadsInProgress objectForKey:indexPath];
if(imageDownloader == nil)
{
NSLog(@"%@",eventRecord.title);
imageDownloader = [[EventImageDownloader alloc] init];
imageDownloader.eventRecord = eventRecord;
imageDownloader.indexPathInTableView = indexPath;
imageDownloader.delegate = self;
[imageDownloadsInProgress setObject:imageDownloader forKey:indexPath];
[imageDownloader startDownload];
[imageDownloader release];

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

}
}

最佳答案

我的方法是构建自己的缓存并将图像保存在用户文档目录中。当我调用 [tableView reloadData] (您正在调用它,对吧?)它首先检查每个单元格图像是否在本地,否则它将从提要中延迟加载它们。告诉我您是否需要这方面的代码。

关于iphone - Apple 在导航 Controller 内延迟加载图像,恢复为占位符图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com