`
yourgame
  • 浏览: 356019 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

iphone移动加载网络图片

    博客分类:
  • IOS
阅读更多
@interface AsyncImageView: UIView {
    NSURLConnection * connection;
    NSMutableData * data;
}
@end


@implementation AsyncImageView

- (void) loadImageFromURL: (NSURL * ) url {
    if (connection != nil) {
        [connection release];
    }
    if (data != nil) {
        [data release];
    }
    NSURLRequest * request = [NSURLRequest requestWithURL: url
    cachePolicy: NSURLRequestUseProtocolCachePolicy
    timeoutInterval: 60.0];
    connection = [
        [NSURLConnection alloc]
        initWithRequest: request delegate: self];
    //TODO error handling, what if connection is nil?
}

- (void) connection: (NSURLConnection * ) theConnection
didReceiveData: (NSData * ) incrementalData {
    if (data == nil) {
        data = [
            [NSMutableData alloc] initWithCapacity: 2048];
    }[data appendData: incrementalData];
}

- (void) connectionDidFinishLoading: (NSURLConnection * ) theConnection {

    [connection release];
    connection = nil;

    if ([
        [self subviews] count] & gt; 0) {
        [
            [
                [self subviews] objectAtIndex: 0] removeFromSuperview];
    }

    UIImageView * imageView = [
        [
            [UIImageView alloc] initWithImage: [UIImage imageWithData: data]] autorelease];

    imageView.contentMode = UIViewContentModeScaleAspectFit;
    imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth || UIViewAutoresizingFlexibleHeight);

    [self addSubview: imageView];
    imageView.frame = self.bounds;
    [imageView setNeedsLayout];
    [self setNeedsLayout];
    [data release];
    data = nil;
}

- (UIImage * ) image {
    UIImageView * iv = [
        [self subviews] objectAtIndex: 0];
    return [iv image];
}

- (void) dealloc {
    [connection cancel];
    [connection release];
    [data release];
    [super dealloc];
}

@end

- (UITableViewCell *)tableView:(UITableView *)tableView
       cellForRowAtIndexPath:(NSIndexPath *)indexPath {
 
    static NSString *CellIdentifier = @"ImageCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 
    if (cell == nil) {
        cell = [[[UITableViewCell alloc]
              initWithFrame:CGRectZero reuseIdentifier:CellIdentifier]
              autorelease];
    } else {
        AsyncImageView* oldImage = (AsyncImageView*)
             [cell.contentView viewWithTag:999];
        [oldImage removeFromSuperview];
    }
 
        CGRect frame;
        frame.size.width=75; frame.size.height=75;
        frame.origin.x=0; frame.origin.y=0;
        AsyncImageView* asyncImage = [[[AsyncImageView alloc]
               initWithFrame:frame] autorelease];
        asyncImage.tag = 999;
        NSURL* url = [imageDownload
               thumbnailURLAtIndex:indexPath.row];
        [asyncImage loadImageFromURL:url];
 
        [cell.contentView addSubview:asyncImage];
 
    return cell;
}

分享到:
评论

相关推荐

    iphone移动卡开启个人热点

    标题“iPhone移动卡开启个人热点”涉及到的是iPhone设备上如何激活并使用个人热点功能,这一功能允许iPhone将网络连接共享给其他设备,如电脑或平板电脑。个人热点通常通过Wi-Fi、蓝牙或USB数据线来提供网络连接。...

    iphone移动商城,mint-ui移动开发.zip

    《iPhone移动商城与Mint-UI移动开发详解》 在当今的移动互联网时代,iOS平台上的应用程序开发一直是开发者关注的焦点。本篇文章将深入探讨基于iPhone的移动商城应用开发,特别是利用Mint-UI这一流行的前端框架进行...

    放IPHONE的图片切换效果

    8. **性能优化**:理解预加载策略,提前加载即将展示的图片,避免在切换时出现延迟。 通过深入学习这些知识点,并参考提供的代码分析,开发者可以构建出具有iPhone风格的图片切换效果,提供流畅且美观的用户体验。

    js仿iphone的图片展示特效

    6. **图片懒加载**:优化性能,可以考虑使用懒加载技术,只有当图片进入视口时才加载,减少页面初始化时的数据传输量。 7. **响应式设计**:确保在不同分辨率和设备上都能正常工作,可能需要利用媒体查询(media ...

    iPhone4S iPhone5设置移动cmWap接入点(无限流量卡越狱方法二)

    ### iPhone4S、iPhone5 设置移动 cmWap 接入点详解 #### 一、引言 随着智能手机的普及和技术的发展,人们对移动互联网的需求日益增长。对于早期的 iPhone 用户而言,如何合理利用套餐内的流量成为了关注的重点之一...

    jquery 图片放大镜仿iphone苹果手机图片文字放大查看效果

    "jquery 图片放大镜仿iphone苹果手机图片文字放大查看效果"正是这样一种技术实现,它模拟了iPhone手机上查看图片时的放大体验,让用户在网页上也能享受到类似的操作感。 jQuery是一个轻量级、高性能的JavaScript库...

    网页修改iPhone13在线源码 – 无需SVIP

    1. 使用懒加载:仅在用户滚动到可见区域时加载图片,减少初次加载时间。 2. 压缩和缩小资源:减小CSS、JavaScript和图片文件大小,提高加载速度。 3. 使用Service Worker:离线缓存策略,即使在无网络连接的情况下也...

    解析iphone拷贝到电脑的png图片

    当我们需要将iPhone上的PNG图片拷贝到电脑并进行处理时,可能会遇到一些兼容性问题,特别是对于Windows系统来说,有时可能无法直接识别某些特定的PNG文件。本文将详细讲解如何解析iPhone拷贝到电脑的PNG图片,并将其...

    81、jQuery模拟iPhone获取WiFi网络列表代码

    在Web应用中,有时我们需要模拟原生移动设备的一些特性,比如在网页上展示可用的WiFi网络,以提供更接近于原生应用的用户体验。这个话题就是探讨如何利用jQuery实现这一目的。 【描述】:描述中的“81、jQuery模拟...

    Iphone编程

    《iPhone应用程序编程指南》作为指导书籍,提供了构建iPhone应用程序所需的知识,包括但不限于用户界面设计、应用生命周期管理、数据存储、网络通信等方面的内容。 在进行iPhone编程时,首先需要熟悉iOS操作系统...

    jQuery实现的iPhone Retina显示屏图片放大效果

    在现代移动设备中,尤其是苹果的iPhone,Retina显示屏提供了极高的像素密度,为用户提供更加清晰、细腻的视觉体验。然而,这也对网页设计师提出了挑战,因为普通的非Retina图片在高分辨率屏幕上会显得模糊。为了解决...

    jQuery模拟iPhone获取WiFi网络列表代码.zip

    这个“jQuery模拟iPhone获取WiFi网络列表代码”项目,显然是一个利用jQuery来创建一个与iPhone界面类似的WiFi网络选择器的示例。通过分析这个压缩包内的代码,我们可以学习到如何用JavaScript和jQuery来模拟移动设备...

    iOS多线程网络请求,多线程下载图片

    本文将深入探讨如何在iPhone开发中利用多线程进行网络请求和图片下载。 首先,我们来看一下标题中的“多线程网络请求”。在iOS中,网络请求通常采用URLSession进行,它提供了异步处理能力,可以在后台线程中执行,...

    中国移动的iOS16 ipcc文件 53

    中国移动的iOS16 ipcc文件 53

    iphone opengl es 纹理

    接着,我们需要加载图片数据,这通常涉及到读取图片文件,如JPEG或PNG,然后使用`glTexImage2D`函数将数据送入GPU。 在iPhone上,由于内存和性能限制,纹理的大小和格式需要谨慎处理。通常我们会选择合适的纹理格式...

    iphone访问java 后台webservice

    Objective-C或Swift是iPhone应用的主要编程语言,它们都提供了URLSession类来发送网络请求。开发者需要构造合适的URL,携带必要的参数,以GET或POST方式提交到服务器。 2. **WebService类型**:在描述中提到了XML和...

    iPhoneQQ在线源码

    10. **第三方库集成**:除了Apple官方提供的框架,开发过程中可能还引入了其他第三方库,如SDWebImage用于图片加载,MBProgressHUD用于加载指示器,MBProgressHUD用于网络请求的状态显示等。 对于初学者来说,通过...

    iPhone开发揭秘.pdf

    在loadView()方法中加载图片资源,通常这些图片资源被保存在NSMutableArray类型的imageArray变量中。OpenFlow库的requestImageForIndex代理方法中,通过NSMutableArray的索引获取具体图片。 OpenFlow编程实现图片...

    jquery移动开发mobile图片移动自适应手机屏幕大小支持上

    在jQuery Mobile框架中,开发移动应用时,确保图片能够自适应不同手机屏幕大小是一项关键任务。这不仅可以提高用户体验,还能确保应用在各种设备上显示得美观且功能正常。标题和描述提到的问题,主要关注如何利用...

    仿iphone手机网站

    - 移动优先:设计时要考虑小屏幕设备,确保主要内容在小屏幕上也能清晰呈现。 - 视觉一致性:使用与iOS系统相似的图标、颜色和字体,保持整体风格的一致性。 - 交互设计:模仿iPhone的滑动、点击、缩放等交互方式,...

Global site tag (gtag.js) - Google Analytics