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 实例 tableview 03`”着重讲解如何在`UITableView`中添加背景图片,以提升应用的视觉效果和用户体验。`03-Adding an Image Backsplash.rar`这个压缩包文件,很显然是包含了一个具体实现这一功能的...
书中可能提供了一个例子,演示如何动态加载和更新表格数据。 手势识别也是UIKit的一部分,UIGestureRecognizer使得应用能够识别和响应各种触摸手势。比如,你可以添加一个PanGestureRecognizer来实现平移操作,或者...
6. **网络编程**:涵盖URL Loading System和NSURLSession,讲解如何与服务器通信,加载和解析JSON数据。 7. **多线程**:讲解GCD(Grand Central Dispatch)和NSOperationQueue,如何在iOS应用中实现后台任务和并发...
在iOS开发中,实现iPhone图片的放大和缩小功能通常涉及到`UIScrollView`的使用。`UIScrollView`是苹果提供的一个视图类,它允许用户通过滚动来查看超过屏幕大小的内容。在这个场景下,我们主要关注如何在`...
《cocos2d-iphone游戏开发》是一本深入讲解如何使用cocos2d框架进行iPhone游戏开发的专业书籍。cocos2d是一个强大的2D游戏开发框架,它为开发者提供了丰富的功能,包括图形渲染、动画系统、物理引擎支持、音频处理等...
本文档是关于使用iPhone SDK进行编程入门的教程,主要讲解如何创建并运行一个简单的应用——“MinutesToMidnight”,该应用可以计算距离午夜12点的剩余时间。以下是整个教程中涉及的关键知识点: 1. **xCode**:...
3. 设置iframe的src属性为一个空的图片路径(static/img/blank.png),这张图片实际上不存在,其目的是触发浏览器重新加载标题。 4. 定义一个iframeCallback函数,在iframe加载完成后执行。这个函数首先移除iframe的...
本文将基于提供的代码片段和描述,深入讲解Core Data的基本概念、实体(Entity)、属性(Attribute)以及如何在实际项目中应用。 首先,我们来看`Event`实体的定义: ```objc @interface Event : NSManagedObject {...
本教程结合实例讲解,使学习过程更加生动有趣,是进入移动游戏开发领域的理想起点。 Cocos2D-iPhone的核心特性包括: 1. **场景(Scenes)与层(Layers)**:Cocos2D-iPhone采用场景和层的概念来组织游戏内容。...
本知识点将详细讲解如何在Android中实现一个仿iPhone风格的ListView下拉更新效果。 首先,我们需要了解下拉刷新的基本工作原理。当用户在ListView顶部向下拉动时,视图会显示一个可滚动的指示器,通常是一个旋转的...
书中会讲解如何使用UIViewController管理屏幕内容,UIWebView加载网页,UITableView展示列表,以及UIButton、UILabel、UIImageView等基本UI组件的使用。 3. **Xcode IDE**: Xcode是Apple官方提供的集成开发环境,...
2. **ImageBrowser**:此项目可能涉及图像浏览和处理,展示了如何在应用中加载和显示图片,以及可能的滚动视图和手势识别。 3. **To-Do List**:一个常见的任务管理应用,涵盖了数据持久化(如SQLite数据库)和用户...
本教程将深入探讨UITableView的使用,特别是针对iPhone应用开发。在第一部分中,我们将着重理解UITableView的基本概念,设置数据源,创建自定义Cell以及如何进行数据绑定。 首先,UITableView是一种控件,用于展示...
例如,在 MoveMe 应用中,主要的 nib 文件包含了一个 `MoveMeAppDelegate` 类的实例,该实例在 nib 加载过程中被创建。 #### 总结 本文介绍了创建 iPhone 应用的基本步骤,包括初始化应用、创建 Delegate 对象和...
Cocos2D-iPhone是一个强大的2D游戏引擎,适用于iOS平台,它提供了丰富的功能和高效的性能,使得创建动态、交互式的游戏变得更为便捷。 本教程首先会介绍Cocos2D-iPhone的基本概念,包括其架构、主要组件以及与...
9. **游戏保存与加载**:教程可能讲解如何利用Cocos2D-iPhone的持久化机制保存游戏进度,以便玩家可以继续他们之前的游戏。 10. **测试与调试**:了解如何使用Xcode的调试工具以及Cocos2D-iPhone提供的调试功能,...
在iOS开发中,地图显示是常见的功能之一,而本压缩包中的源码示例"IOS应用源码之基于CATiledLayer UIScrollView的地图显示程序TiledLayer_iphone.zip"着重讲解了如何利用CATiledLayer和UIScrollView来高效地实现这一...
这个“ios 网页中图片点击放大效果demo”提供了在iPhone 6.1上测试成功的实例,旨在展示如何在UIWebView中处理图片点击事件并实现放大效果。以下是对这个知识点的详细讲解: 1. **UIWebView**: UIWebView是Apple ...
Objective-C是iPhone开发的基础语言,本章深入浅出地讲解了Objective-C的关键概念,如消息传递、类、对象、继承、协议等。通过实例,帮助读者理解面向对象编程在iOS中的应用。 **第四章:构建用户界面** 这一章主要...