iOS-Weex-Gif图片显示

第一步:在项目中即成SDWebImage库

pod 'SDWebImage','4.4.2'

第二步:在初始化WXSDKEngine时注册图片库

[WXSDKEngine registerHandler:[WXImgLoaderDefaultImpl new] withProtocol:@protocol(WXImgLoaderProtocol)];

第三步:实现WXImgLoaderDefaultImpl类

WXImgLoaderDefaultImpl.h文件

#import <Foundation/Foundation.h>
#import <WeexSDK/WeexSDK.h>

@interface WXImgLoaderDefaultImpl : NSObject<WXImgLoaderProtocol, WXModuleProtocol>
@end


#import "WXImgLoaderDefaultImpl.h"
#import <SDWebImage/UIImageView+WebCache.h>
#import <SDWebImage/UIImage+GIF.h>

WXImgLoaderDefaultImpl.m文件

@implementation WXImgLoaderDefaultImpl

- (id<WXImageOperationProtocol>)downloadImageWithURL:(NSString *)url imageFrame:(CGRect)imageFrame userInfo:(NSDictionary *)userInfo completed:(void(^)(UIImage *image,  NSError *error, BOOL finished))completedBlock
{
    return (id<WXImageOperationProtocol>)[[SDWebImageManager sharedManager].imageDownloader downloadImageWithURL:[NSURL URLWithString:url] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
        
    } completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
        if (completedBlock) {
            // 关键点
            if ([url hasSuffix:@"gif"]) {
                UIImage *images = [UIImage sd_animatedGIFWithData:data];
                completedBlock(images, error, finished);
            }else{
                completedBlock(image, error, finished);
            }
        }
        
    }];
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,163评论 1 32
  • 如果你想有更强的自控力,就得有更多的自我意识。首先你得知道,什么样的决定需要意志力。有些决定比较明显,比如“下班后...
    护眼世家阅读 244评论 0 0
  • 焦化厂除尘器@延安焦化厂除尘器@焦化厂除尘器维修@我若睡去,谁会寂寞 焦化厂除尘器是一种过滤式除尘设备。它的突出优...
    焦化厂除尘器生产厂家阅读 184评论 0 0
  • 玛吉阿米 我最最亲爱的姑娘 我已沉寂太多年 你是知道的 这一世 我注定没法追随 你去的方向 这是我最大的遗憾了 我...
    伍月的晴空阅读 247评论 4 4