iOS 네트워크 프로그래밍 (5) 비동기 로드 및 캐시 이미지 -----EGO

@EGOImageView는 매우 자주 사용하는 비동기 로드 및 캐시 네트워크 이미지의 제3자 클래스로 SDWebImage보다 개인적으로 EGOImageView가 더 간단하다(PS:EGOImageView는 ARC를 지원하지 않으며, SDWebImage3.0은 ARC를 지원한다)
@EGOImageView 가져오기 1.다운로드:https://github.com/enormego/EGOImageLoading(다운로드 후 데모 프로그램 XCode를 실행하면 EGOCache.h 헤더 파일을 찾을 수 없음을 알릴 수 있습니다. 이곳에서 다운로드할 수 있습니다.https://github.com/enormego/EGOCache) 2.EGOCache, EGOImageButton, EGOImageView, EGOImageLoader를 모두 프로젝트에 추가(복사)3.EGOImageView는 ARC를 지원하지 않습니다. ARC의 프로젝트에서 주의해야 할 것은 MRC 프로젝트를 참고하여 ARC를 구성할 수 있습니다.
@ 코드 예:
- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    
    _button = [[HMTBlockButton alloc]initWithFrame:CGRectMake(110, 510, 100, 50)];
    _button.backgroundColor = [UIColor redColor];
    [_button setTitle:@"  " forState:UIControlStateNormal];
    [self.view addSubview:_button];
    [_button release];
    
    //      Button    Block  
    _button.blockButton = ^(HMTBlockButton * button){
        /**
         *  placeholder.png                , APP                 APP   
         *    ,             url     。
         */
        _imageView = [[EGOImageView alloc] initWithPlaceholderImage:[UIImage imageNamed:@"placeholder.png"]];
        _imageView.imageURL = [NSURL URLWithString:@"http://i0.sinaimg.cn/ent/s/m/2011-08-19/U3904P28T3D3391507F329DT20110819143720.jpg"];
        _imageView.frame = CGRectMake(60, 30, 200, 400);
        [self.view addSubview:_imageView];
        [_imageView release];
        
    };
    
    //   :    
    [[EGOCache globalCache] clearCache];
    
    //             
    UIImage * image = [[EGOImageLoader sharedImageLoader]imageForURL:[NSURL URLWithString:@"http://i0.sinaimg.cn/ent/s/m/2011-08-19/U3904P28T3D3391507F329DT20110819143720.jpg"] shouldLoadWithObserver:nil];
    
}

@ 참고 사항:
최근에 인터넷에서 자료를 찾아보니 EGOImageView의 버그로
이미지 뷰의 그림 불러오기가 완료되었을 때, 그림의 URL을 바꾸고 EGOImageView로 이 그림을 불러오려면, EGOImageView의 이미지 URL 속성을 다시 설정해야 합니다.그런데 여기서 특히 주의해야 할 것은 이 방법은 반드시 주 라인에서 실행되어야 한다는 것이다
    _button1 = [[HMTBlockButton alloc]initWithFrame:CGRectMake(160, 510, 100, 50)];
    _button1.backgroundColor = [UIColor redColor];
    [_button1 setTitle:@"  " forState:UIControlStateNormal];
    [self.view addSubview:_button1];
    [_button1 release];
    
    //      Button    Block  
    _button1.blockButton = ^(HMTBlockButton * button){
        
        //        
        dispatch_async(dispatch_get_main_queue(), ^{
            
            _imageView.imageURL = [NSURL URLWithString:@"http://www.sinaimg.cn/dy/slidenews/3_img/2012_10/28891_147237_598867.jpg"];
            
        });
        
    };

좋은 웹페이지 즐겨찾기