- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
[NSThread detachNewThreadSelector:@selector(startImageread:) toTarget:self withObject:indexPath];
}
startImageread是获取照片的方法,我是从本地读取的
-(void)startImageread:(NSIndexPath *)indexPath
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSInteger row = [indexPath row];
NSDictionary *imageNameDictionary = [self.DataArray objectAtIndex:[DataArray count]-row-1];
NSString *readImageaname=[imageNameDictionary objectForKey:@"objectTimedata"];
//NSLog(@"SaveData%@",imageNameDictionary);
//NSLog(readImageaname);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
if (!documentsDirectory) {
NSLog(@"Documents directory not found!");
}
NSString *Data2File = [documentsDirectory stringByAppendingPathComponent:readImageaname];
UIImage *newimage=[UIImage imageWithContentsOfFile:Data2File];//读取的图片
//UIImage *newimage=[[UIImage alloc] initWithContentsOfFile:Data2File];
//printf("startImageread****indexPath:%d\r\n",row);
NSDictionary *cellimage = [NSDictionary dictionaryWithObjectsAndKeys:
indexPath, @"indexPathdtat",
newimage,@"image",
nil];
//[NSThread sleepForTimeInterval:3];//不能让线程睡否则太慢了
[self performSelectorOnMainThread:@selector(_setOCellImage:) withObject:cellimage waitUntilDone:YES];
[pool release];
}
_setOCellImage是缓存刷新cell的图像
这里需要传递两个参数一个是indexPath 一个是图片newimage但是performSelectorOnMainThread只能带一个参数
这个问题困扰我半天,于是我把indexPath和newimage放到一个数组NSDictionary *cellimage传过来的
-(void)_setOCellImage:( id )celldata
{
UIImage *newimage=[celldata objectForKey:@"image"];//从参数celldata里面拿出来图片
[self.DataTable cellForRowAtIndexPath:[celldata objectForKey:@"indexPathdtat"]].imageView.image=newimage;
}
分享到:
相关推荐
因此,"iPhone UITableView异步加载图片"是解决这个问题的关键技术。 异步加载图片的基本思想是在主线程之外的其他线程(通常为后台线程)下载和处理图片,避免阻塞用户界面。在UITableView中,我们通常会在cell...
在iOS开发中,`UITableView`是用于展示列表数据的关键组件,而异步加载图片是提高用户体验的重要技术。在用户滚动列表时,为了防止卡顿,我们通常不在主线程上加载图片,而是通过异步方式在后台线程处理。在描述中...
实现UITableView异步加载图片,类似于EGOImageView的效果。 而且自己写的代码比较清晰,容易理解,易于扩展。可以实现指定placehoderImage以及指定imageURL,来进行图片的异步加载。 同时,如果图片已经请求过,则...
在本教程中,我们将探讨如何在UITableView中实现异步加载图片,以提高用户体验。 首先,我们需要了解异步加载的基本概念。异步加载是指在主线程之外创建一个新的线程来执行耗时的操作,如网络请求或图片解码,这样...
2. **异步加载图片**:在UITableView中直接加载网络图片会严重影响滚动性能,因为这会导致大量的网络请求并发执行。为了解决这个问题,范例采用了异步加载策略,即在后台线程下载图片,避免了UI卡顿。此外,为了...
在编程领域,尤其是在开发用户界面(UI)时,异步加载图片是一项常见的需求。它能够提升用户体验,防止因大量图片加载导致的界面卡顿。本文将深入探讨如何实现异步加载图片并将其显示到控件上,特别适合初学者学习。...
- 在`cellForRowAt`方法中,根据单元格的索引判断其是否在视口内,如果在则开始加载图片,不在则等待滚动到可视区时再加载。 4. **流量控制**: 为了更好地控制流量,可以设置图片加载策略,比如限制同时加载的...
在iOS开发中,...总结,异步加载图片是优化UITableView性能的关键技术,通过第三方库或自定义实现,可以有效地提升应用的用户体验。在实际项目中,我们需要结合各种优化技巧,确保图片加载既快速又节省资源。
在这个例子中,`sd_setImage`方法会在后台异步加载图片,并在完成后更新UIImageView。 **图片缓存** 图片缓存是另一种优化策略,用于存储已下载的图片,以便再次需要时能快速访问。缓存分为内存缓存和磁盘缓存。...
3. **AsyncImageView.h/m**:这是一个自定义的图片视图,它扩展了 `UIImageView`,并实现了异步加载图片的功能。在 `UITableView` 的每个单元格中,我们通常会使用这种视图来显示图片。它会在后台线程中加载图片,并...
在iOS开发中,异步加载和缓存是两个至关重要的概念,特别是在处理大量数据和多媒体内容时,如在UITableView或UICollectionView中显示图片。这两个技术能够显著提升应用性能,提高用户体验,同时节省系统资源。 首先...
5. 如果图片是从网络加载的,你可能需要使用异步加载技术,如GCD(Grand Central Dispatch)或第三方库如SDWebImage,避免阻塞主线程。 6. 在数据源准备好后,调用`tableView.reloadData()`刷新表格视图。 最后,...
EGOTableViewPullRefresh 是一个优秀的开源库,它专门针对UITableView进行了优化,实现了下拉刷新功能,并且支持异步加载图片,极大地提高了图片加载速度。这个库对于那些需要展示大量网络图片,如新闻、社交媒体...
而"android ExpandableListView子集异步加载+IphoneTreeView"这个主题主要关注如何在`ExpandableListView`中实现子集的异步加载以及模仿iPhone风格的树形视图(`IphoneTreeView`)。 首先,让我们深入理解`...
在iOS开发中,异步加载网络图片到视图上是一个常见的需求,特别是在处理大量图片的列表展示时。这个压缩包“ios-异步加载网络图片到视图上,并且实现内存中的缓存.zip”显然是一个示例项目,旨在教授如何在iOS应用中...
异步加载图片可以显著提高应用的性能和用户体验,避免UI线程阻塞导致应用卡顿。EGOImageLoading是一个专门用于解决这个问题的开源库,它能够高效地实现图片的异步加载和自动缓存管理。 EGOImageLoading的设计目标是...
通常,我们会从服务器获取图片URL,然后使用异步加载库(如SDWebImage或Kingfisher)下载并缓存图片,以提高性能。 3. **图片加载库**: - SDWebImage:这是一个流行的库,支持自动缓存网络图像,防止重复加载,...
UITableView异步加载网络数据的效果,适合初学者,主要学习 1、UITableView通过网络加载数据(这里加载rss的xml格式数据) 2、网络链接及其委托方法的使用 3、获取加载网络数据的总大小以及每次下载数据的大小 4、...
7. **利用 ImageIO 框架**:ImageIO提供了一个名为`CGImageSourceCreateWithData`的函数,可以从数据源中异步加载图片,进一步提升性能。 通过以上方法,我们可以有效地利用RunLoop机制优化UITableView加载大量图片...