zoukankan      html  css  js  c++  java
  • IOS学习之路二十三(EGOImageLoading异步加载图片开源框架使用)

    EGOImageLoading 是一个用的比较多的异步加载图片的第三方类库,简化开发过程,我们直接传入图片的url,这个类库就会自动帮我们异步加载和缓存工作;当从网上获取图片时,如果网速慢图片短时间内不能下载下来,可以先用一张本地的图片代替显示,还可以进行其他操作,让图片下载完成后自动替换占位图片而不影响用户体验;


    原文转自:http://blog.csdn.net/wildcatlele/article/details/11536939

    EGOImageLoading 的GitHub 下载地址:  https://github.com/enormego/EGOImageLoading

    GitHub上下载下来的类库会有一个Demo,如果运行出错说明缺少EGOCache类,在https://github.com/enormego/EGOCache添加道工程之中,或者直接点击这里下载

    配置很简单:

    下载源代码解压缩后直接拖到项目目录中;

    添加ImageIO.framwork;



    下面附上我自己写的一个自定义UitableViewCell代码:

    结果代码展示:



    EGOImageLoading写的自定义代码如下:

    OneImageTableViewCell.h

    //
    //  OneImageTableViewCell.h
    //  ImageViewRefreshDemo
    //
    //  Created by WildCat on 13-9-7.
    //  Copyright (c) 2013年 wildcat. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    @class EGOImageView;  //声明头
    @interface OneImageTableViewCell : UITableViewCell
    @property (nonatomic) EGOImageView *egoImageView;//ImageView类型为:EGOImageView
    @property (nonatomic,retain) UILabel *titleLabel;
    @property (nonatomic,retain) UILabel *addressLabel;
    @property (nonatomic,retain) UILabel *dateLabel;
    -(void) setUrlByString:(NSString *) urlStr;
    @end
    

    OneImageTableViewCell.m

    //
    //  OneImageTableViewCell.m
    //  ImageViewRefreshDemo
    //
    //  Created by WildCat on 13-9-7.
    //  Copyright (c) 2013年 wildcat. All rights reserved.
    //
    
    #import "OneImageTableViewCell.h"
    #import "EgoImageView.h"
    @implementation OneImageTableViewCell
    @synthesize titleLabel;
    @synthesize addressLabel;
    @synthesize dateLabel;
    @synthesize egoImageView;
    -(void)setUrlByString:(NSString *)urlStr{
        egoImageView.imageURL = [NSURL URLWithString:urlStr];
    }
    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    {
        if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
            egoImageView=[[EGOImageView alloc] initWithPlaceholderImage:[UIImage imageNamed:@"2.jpeg"]];//声明对象
            egoImageView.frame=CGRectMake(227.0f, 9.0f, 66.f, 50.f);
            [self.contentView addSubview:egoImageView];
            
                    
            addressLabel=[[UILabel alloc] initWithFrame:CGRectMake(13.0f, 58.0f, 42.f, 18.f)];
            addressLabel.font=[UIFont systemFontOfSize:10.f];
            
            titleLabel=[[UILabel alloc] initWithFrame:CGRectMake(13.0f, .0f, 210.f, 59.f)];
            titleLabel.lineBreakMode = UILineBreakModeWordWrap;
            titleLabel.numberOfLines = 0;
            titleLabel.font=[UIFont boldSystemFontOfSize:14.f];
            dateLabel=[[UILabel alloc] initWithFrame:CGRectMake(240.0f, 59.0f, 52.f, 16.f)];
            dateLabel.font=[UIFont systemFontOfSize:8.f];
            
            [self.contentView addSubview:titleLabel];
            [self.contentView addSubview:addressLabel];
            [self.contentView addSubview:dateLabel];
            
    	}
        return self;
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated
    {
        [super setSelected:selected animated:animated];
    
        // Configure the view for the selected state
    }
    
    @end
    

    使用:

    if (oneImageCell==nil) {
               oneImageCell=[[OneImageTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellWithOneImageIdentifier];
            }
            oneImageCell.backgroundView =sectionBagView;
            oneImageCell.backgroundView.backgroundColor=[UIColor whiteColor];
            oneImageCell.selectedBackgroundView = [[UIView alloc] initWithFrame:oneImageCell.frame] ;
            oneImageCell.selectedBackgroundView.backgroundColor = [UIColor grayColor];
    
            oneImageCell.titleLabel.text=nowTitle;
            oneImageCell.addressLabel.text=address;
            oneImageCell.dateLabel.text=date;
            [oneImageCell setUrlByString:[imageUrlsArray objectAtIndex:1]];
            return oneImageCell;

    转载请注明:

    新浪微博:http://weibo.com/u/3202802157














  • 相关阅读:
    b/s批量下载文件
    b/s批量下载图片
    python函数总结(转载的 有空看下)
    使用命令行执行需要传参的 py文件的方法
    Jmeter3.1官方自带的HTML图形测试报告 + 汉化 (Jmeter 3.1~5.0通用)(有空试一下)
    Jmeter 获取响应时间图形、TPS的三个插件(有空试一下)
    把表里面的字段连起来 输出到一个字段里面的方法 concat()
    testng要了解的
    包的相互调用的方法
    包目录展示方法设置,和 包里面建包的方法
  • 原文地址:https://www.cnblogs.com/lixingle/p/3707729.html
Copyright © 2011-2022 走看看