`
sinaier
  • 浏览: 34939 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

iPhone动态加载图片 实例讲解(收藏)

阅读更多
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

    本实例“`iphone 实例 tableview 03`”着重讲解如何在`UITableView`中添加背景图片,以提升应用的视觉效果和用户体验。`03-Adding an Image Backsplash.rar`这个压缩包文件,很显然是包含了一个具体实现这一功能的...

    iphone UIKit的实例代码

    书中可能提供了一个例子,演示如何动态加载和更新表格数据。 手势识别也是UIKit的一部分,UIGestureRecognizer使得应用能够识别和响应各种触摸手势。比如,你可以添加一个PanGestureRecognizer来实现平移操作,或者...

    斯坦福大学 iphone 教程 图文讲解 全

    6. **网络编程**:涵盖URL Loading System和NSURLSession,讲解如何与服务器通信,加载和解析JSON数据。 7. **多线程**:讲解GCD(Grand Central Dispatch)和NSOperationQueue,如何在iOS应用中实现后台任务和并发...

    iphone 图片的放大缩小

    在iOS开发中,实现iPhone图片的放大和缩小功能通常涉及到`UIScrollView`的使用。`UIScrollView`是苹果提供的一个视图类,它允许用户通过滚动来查看超过屏幕大小的内容。在这个场景下,我们主要关注如何在`...

    cocos2d-iphone游戏开发pdf

    《cocos2d-iphone游戏开发》是一本深入讲解如何使用cocos2d框架进行iPhone游戏开发的专业书籍。cocos2d是一个强大的2D游戏开发框架,它为开发者提供了丰富的功能,包括图形渲染、动画系统、物理引擎支持、音频处理等...

    vue-router动态设置页面title的实例讲解

    3. 设置iframe的src属性为一个空的图片路径(static/img/blank.png),这张图片实际上不存在,其目的是触发浏览器重新加载标题。 4. 定义一个iframeCallback函数,在iframe加载完成后执行。这个函数首先移除iframe的...

    iPhone 开发笔记实录(代码讲解)

    本文将基于提供的代码片段和描述,深入讲解Core Data的基本概念、实体(Entity)、属性(Attribute)以及如何在实际项目中应用。 首先,我们来看`Event`实体的定义: ```objc @interface Event : NSManagedObject {...

    知易Cocos2D-iPhone开发教程

    本教程结合实例讲解,使学习过程更加生动有趣,是进入移动游戏开发领域的理想起点。 Cocos2D-iPhone的核心特性包括: 1. **场景(Scenes)与层(Layers)**:Cocos2D-iPhone采用场景和层的概念来组织游戏内容。...

    仿iphone的listview下拉更新

    本知识点将详细讲解如何在Android中实现一个仿iPhone风格的ListView下拉更新效果。 首先,我们需要了解下拉刷新的基本工作原理。当用户在ListView顶部向下拉动时,视图会显示一个可滚动的指示器,通常是一个旋转的...

    Beginning iPhone Development Exploring the iPhone SDK Example Code

    书中会讲解如何使用UIViewController管理屏幕内容,UIWebView加载网页,UITableView展示列表,以及UIButton、UILabel、UIImageView等基本UI组件的使用。 3. **Xcode IDE**: Xcode是Apple官方提供的集成开发环境,...

    Beginning iPhone 3 Development souce/ iPhone 开发基础教程 源代码

    2. **ImageBrowser**:此项目可能涉及图像浏览和处理,展示了如何在应用中加载和显示图片,以及可能的滚动视图和手势识别。 3. **To-Do List**:一个常见的任务管理应用,涵盖了数据持久化(如SQLite数据库)和用户...

    iphone应用开发:UITableView的详细讲解(一)

    本教程将深入探讨UITableView的使用,特别是针对iPhone应用开发。在第一部分中,我们将着重理解UITableView的基本概念,设置数据源,创建自定义Cell以及如何进行数据绑定。 首先,UITableView是一种控件,用于展示...

    一步一步教你如何创建一个iPhone应用

    例如,在 MoveMe 应用中,主要的 nib 文件包含了一个 `MoveMeAppDelegate` 类的实例,该实例在 nib 加载过程中被创建。 #### 总结 本文介绍了创建 iPhone 应用的基本步骤,包括初始化应用、创建 Delegate 对象和...

    知易Cocos2D-iPhone 游戏开发教程

    Cocos2D-iPhone是一个强大的2D游戏引擎,适用于iOS平台,它提供了丰富的功能和高效的性能,使得创建动态、交互式的游戏变得更为便捷。 本教程首先会介绍Cocos2D-iPhone的基本概念,包括其架构、主要组件以及与...

    知易Cocos2D-iPhone 游戏开发教程006

    9. **游戏保存与加载**:教程可能讲解如何利用Cocos2D-iPhone的持久化机制保存游戏进度,以便玩家可以继续他们之前的游戏。 10. **测试与调试**:了解如何使用Xcode的调试工具以及Cocos2D-iPhone提供的调试功能,...

    IOS应用源码之基于CATiledLayer UIScrollView的地图显示程序TiledLayer_iphone.zip

    在iOS开发中,地图显示是常见的功能之一,而本压缩包中的源码示例"IOS应用源码之基于CATiledLayer UIScrollView的地图显示程序TiledLayer_iphone.zip"着重讲解了如何利用CATiledLayer和UIScrollView来高效地实现这一...

    ios 网页中图片点击放大效果demo

    这个“ios 网页中图片点击放大效果demo”提供了在iPhone 6.1上测试成功的实例,旨在展示如何在UIWebView中处理图片点击事件并实现放大效果。以下是对这个知识点的详细讲解: 1. **UIWebView**: UIWebView是Apple ...

    IPhone3 开发秘籍 例程

    Objective-C是iPhone开发的基础语言,本章深入浅出地讲解了Objective-C的关键概念,如消息传递、类、对象、继承、协议等。通过实例,帮助读者理解面向对象编程在iOS中的应用。 **第四章:构建用户界面** 这一章主要...

Global site tag (gtag.js) - Google Analytics