ifish/Ifish/UMCommunity/UMCommunitySDK/UMCommunityUI/CustomView/UMImageView/UMComImageView.m

122 lines
3.1 KiB
Objective-C

//
// UMComImageView.m
// UMCommunity
//
// Created by Gavin Ye on 5/6/15.
// Copyright (c) 2015 Umeng. All rights reserved.
//
#import "UMComImageView.h"
#import "UMComResouceDefines.h"
@interface UMComImageView ()
@property (nonatomic ,copy) Class imageViewClass;
@end
@implementation UMComImageView
static UMComImageView *_instance = nil;
+ (UMComImageView *)shareInstance {
@synchronized (self) {
if (_instance == nil) {
_instance = [[self alloc] init];
}
}
return _instance;
}
+ (Class)imageViewClassName
{
Class returnClass = [self class];
if ([self shareInstance].imageViewClass) {
returnClass = [self shareInstance].imageViewClass;
}
return returnClass;
}
+ (void)registUMImageView:(Class)imageViewClass
{
[self shareInstance].imageViewClass = imageViewClass;
}
+ (UIImage *)placeHolderImageGender:(NSInteger )gender
{
UIImage *placeHolder = nil;
if (gender == 0) {
placeHolder = UMComImageWithImageName(@"female");
} else{
placeHolder = UMComImageWithImageName(@"male");
}
return placeHolder;
}
- (void)setImageURL:(NSString *)imageURLString placeHolderImage:(UIImage *)placeHolderImage
{
if (imageURLString) {
NSURL *url = [NSURL URLWithString:imageURLString];
[super setImageURL:url];
if (!self.isCacheImage) {
self.placeholderImage = placeHolderImage;
[self startImageLoad];
}
} else {
self.placeholderImage = placeHolderImage;
}
}
- (void)setImageURLString:(NSString *)imageURLString
{
if (imageURLString) {
NSURL *url = [NSURL URLWithString:imageURLString];
[super setImageURL:url];
if (!self.isCacheImage) {
[self startImageLoad];
}
}
}
-(instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.isAutoStart = NO;
self.delegate = self;
}
return self;
}
- (void)imageViewLoadedImageSizePercent:(float)percent imageView:(UMImageView*)imageView
{
if (self.imageLoaderDelegate && [self.imageLoaderDelegate respondsToSelector:@selector(umcomImageViewLoadedImageSizePercent:imageView:)]) {
[self.imageLoaderDelegate umcomImageViewLoadedImageSizePercent:percent imageView:self];
}
if (self.loadedImageSizePercentBlock) {
self.loadedImageSizePercentBlock(self,percent);
}
}
- (void)imageViewLoadedImage:(UMImageView*)imageView
{
if (self.imageLoaderDelegate && [self.imageLoaderDelegate respondsToSelector:@selector(umcomImageViewLoadedImage:)]) {
[self.imageLoaderDelegate umcomImageViewLoadedImage:self];
}
if (self.loadedImageBlock) {
self.loadedImageBlock(self);
}
}
- (void)imageViewFailedToLoadImage:(UMImageView*)imageView error:(NSError*)error
{
if (self.imageLoaderDelegate && [self.imageLoaderDelegate respondsToSelector:@selector(umcomImageViewFailedToLoadImage:error:)]) {
[self.imageLoaderDelegate umcomImageViewFailedToLoadImage:self error:error];
}
if (self.loadImageFailedBlock) {
self.loadImageFailedBlock(self,error);
}
}
@end