iPhone动态加载图片 实例讲解是本文介绍的内容。不多说了,先来看内容。官方的例子(支持3.x以上的机子)
http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html
其实在iphone上面是实现图片的动态加载,其实也不是很难,其中只要在代理中实现方法就可以,首先在头文件中声明使用到的代理:如
@interface XXX : UIViewController<UIScrollViewDelegate>
然后在.m中实现
//滚动停止的时候在去获取image的信息来显示在UITableViewCell上面
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (!decelerate) {
[self loadImagesForOnscreenRows];
}
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
[self loadImagesForOnscreenRows];
}
//
- (void)loadImagesForOnscreenRows {
if ([self.entries count] > 0)
{
NSArray *visiblePaths = [self.tableView indexPathsForVisibleRows];
for (NSIndexPath *indexPath in visiblePaths)
{
AppRecord *appRecord = [self.entries objectAtIndex:indexPath.row];
if (!appRecord.appIcon)
// avoid the app icon download if the app already has an icon
{
[self startIconDownload:appRecord forIndexPath:indexPath];
}
}
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
………//初始化UITableView的相关信息
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
……
if (!appRecord.appIcon)
//当UItableViewCell还没有图像信息的时候
{
if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
//table停止不再滑动的时候下载图片(先用默认的图片来代替Cell的image)
{
[self startIconDownload:appRecord forIndexPath:indexPath];
}
cell.imageView.image = [UIImage imageNamed:@"Placeholder.png"];
}
else//当appReacord已经有图片信息的时候直接显示
{
cell.imageView.image = appRecord.appIcon;
}
}
以上就是动态加载的主要的代码实现(其中不包括从网络上面下载图片信息等操作)
因为我们创建UITableviewCell的时候是以重用的方式来创建,所以就相当于说第一屏显示的cell就是以后显示数据和图片的基础,因为后面数据超出一平的时候,我们只是改变数据的显示,并没有为每一个cell的数据元创建相应的一个
UITableViewCell(这样非常的浪费内存),要是我们没有实现
(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 和
(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
代理的时候,当我们滚动UITableView的时候TableView 就是按照顺序来加载图片的信息资源,这样当我们用力滚动Table的时候就感觉相当的卡,(其实UITableView实在一个个的显示出cell的信息)
当我们实现了以上代理的话,就可以实现在tableView滚动停止的时候,在去加载数据信息,这样滚动期间的tableViewCell就可以用默认的图片信息来显示了
分享到:
相关推荐
iphone UITableView异步加载图片
iphone FGallery图片浏览实例,包括图片切换,放大、全屏预览、 图片异步加载,等功能。
iphone uitableview图片延迟加载实例,一个官方例子,自己研究的时候加入了详细的注释,传上来方便自己以后使用。
ios iphone异步加载图片EGOTableViewPullRefresh 非常好用 可以加快网络图片加载的速度,必不可少
IPhone TableView 图片异步加载
iPhone游戏编程实例
iPhone上实现异步加载图片并缓存代码,供大家一起共同分享学习。
这是一个关于IPhone开发FTP文件上传下载的实例。适合做IPhone网络相关编程参考,需要的朋友可以学习。压缩包在OS下可自解压。
iphone游戏编程实例pdf+源码
仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器 仿iPhone/iPod动态图片浏览器
很好的一本基于IOS的iPhone手机游戏开发实例教材,简单易懂,学习容易。
iPhone用户界面设计典型实例. 北京市:人民邮电出版社, 2011.06. 【内容提要】 本书介绍用户体验和好的外观的应用程序,以及iPhone用户界面设计的秘密。主要包括以下内容:优化使用有限的屏幕面积,让 屏幕上的元素...
Iphone UI各种控件实例
iphone推送实例,iphone推送实例
30天精通iPhone手机编程+实例iPhone SDK编程入门教程.rar
iphone notification 使用实例,简要的阐明了notification使用的方法,需要的可以下一下
android源码,模仿Iphone网络加载进度条
iPhone应用开发 RSS实例源代码 ,仅供学习和研究。。。
iphone开发实例,3G,iPhone手机