亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS中Weex 加載 .xcassets 中的圖片資源的實例詳解

2020-07-26 02:43:14
字體:
來源:轉載
供稿:網友

IOS中Weex 加載 .xcassets 中的圖片資源的實例詳解

前言:

因為 .xcassets 中的圖片資源只能通過 imageNamed: 方法加載,所以需要做一些特殊處理,才能提供給 Weex 使用(PS:純屬娛樂,因為 Weex 跨平臺的特性,這種針對某一端做實現的方案實用價值并不大)。

方案

觀察 WeexSDK 發現有 WXImgLoaderProtocol 這個協議,這個協議包含了下面的方法:

- (id<WXImageOperationProtocol>)downloadImageWithURL:(NSString *)url imageFrame:(CGRect)imageFrame userInfo:(NSDictionary *)options completed:(void(^)(UIImage *image, NSError *error, BOOL finished))completedBlock;

從名字就可以看出來,這個方法聲明的功能就是通過指定的 URL 下載圖片并返回一個 UIImage 對象。

下載過 WeexDemo 的人應該都知道里面有一個叫 WXImgLoaderDefaultImpl 的類(PS:別告訴我你對 Weex 感興趣確連 WeexDemo 里面有啥都不知道)。這個類實現了 WXImgLoaderProtocol 協議,內容如下:

- (id<WXImageOperationProtocol>)downloadImageWithURL:(NSString *)url imageFrame:(CGRect)imageFrame userInfo:(NSDictionary *)userInfo completed:(void(^)(UIImage *image, NSError *error, BOOL finished))completedBlock{ if ([url hasPrefix:@"http://"]) {  url = [@"http:" stringByAppendingString:url]; } return (id<WXImageOperationProtocol>)[[SDWebImageManager sharedManager] downloadImageWithURL:[NSURL URLWithString:url] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) { } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {  if (completedBlock) {   completedBlock(image, error, finished);  } }];}

其實就是利用 SDWebImage 這個庫實現圖片下載功能。而且我還發現,如果不實現 WXImgLoaderProtocol 協議,就無法在 Weex 的代碼中通過 URL 加載網絡圖片。也就是說 Weex 其實是依賴原生來做網絡圖片加載,至于為什么這么做,我只能說:我不知道。

然后 WeexDemo 通過下面的代碼把 WXImgLoaderDefaultImpl 注冊為 Weex 的一個 iOS 原生 handler

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

這樣我們就可以在 Weex 中加載網絡圖片了,比如:

<image class="img" style="width: 68px; height: 68px;margin-left:20px;" src="https://gw.alicdn.com/tps/TB1El.mKXXXXXXyapXXXXXXXXXX-34-34.gif"></image>

好了,現在就來說說怎么加載 .xcassets 中的圖片資源,其實很簡單,在 WXImgLoaderDefaultImpl 實現的方法中添加幾行代碼就可以:

if ([url hasPrefix:@"xcassets:"]) { UIImage *image = [UIImage imageNamed:[url substringFromIndex:9]]; completedBlock(image, nil, YES); return [WXXCassetsLoaderOperation new];}

這里我定義的規則是:xcassets:+[.xcassets 中的圖片名]。所以我們判斷 url 是不是以 xcassets: 開頭,如果是,通過 imageNamed 方法加載圖片并返回即可。

因為 downloadImageWithURL 方法要求返回遵循 WXImageOperationProtocol 協議的對象,所以我們新建一個 WXXCassetsLoaderOperation 類,然后實現 WXImageOperationProtocol 協議中的 cancel 方法:

- (void)cancel {}

然后我們就可以在 Weex 中加載 .xcassets 中的圖片了。代碼如下:

<image class="img" style="width: 300px; height: 300px;" src="xcassets:reload"></image>

以上就是IOS中Weex 加載 .xcassets 中的圖片資源的實例詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人黄色在线| 美女性感视频久久久| 日韩欧美在线一区| 国产精品精品视频一区二区三区| 国产精品99导航| 韩日欧美一区二区| 亚洲欧洲第一视频| 亚洲综合精品一区二区| 国产精品色视频| 国产精品久久久久久久久久久不卡| 91在线色戒在线| 国产欧美在线看| 欧美在线国产精品| 日本欧美一级片| 亚洲精品视频网上网址在线观看| 中文字幕一精品亚洲无线一区| 亚洲成人av在线播放| 麻豆乱码国产一区二区三区| 欧美激情在线视频二区| 国产精品揄拍500视频| 成人做爰www免费看视频网站| 亚洲欧洲黄色网| 国产精品久久久91| 国产精品黄色影片导航在线观看| 亚洲第一综合天堂另类专| 日本在线精品视频| 日韩免费av一区二区| 国产亚洲视频在线观看| 亚洲综合色av| 中文字幕亚洲一区二区三区五十路| 久国内精品在线| 欧美成人在线免费| 久久久久久中文字幕| 欧美亚洲伦理www| 欧美日韩国产成人高清视频| 日本久久精品视频| 九九热精品视频在线播放| 97国产一区二区精品久久呦| 亚洲一区国产精品| 成人在线播放av| 亚洲丁香婷深爱综合| 92裸体在线视频网站| 亚洲国产天堂久久综合网| 4438全国亚洲精品在线观看视频| 国产一区二区三区欧美| 亚洲欧洲中文天堂| 亚洲国模精品私拍| 国产精品国产三级国产aⅴ9色| 91视频8mav| 亚洲欧美在线看| 亚洲自拍中文字幕| 久久久久久久久久久免费| 精品欧美国产一区二区三区| 欧美另类高清videos| 中文字幕在线看视频国产欧美在线看完整| 欧美成人第一页| 国产成人精品a视频一区www| 亚洲人在线视频| 少妇精69xxtheporn| 国产欧美精品在线播放| 国产精品一香蕉国产线看观看| 亚洲伊人成综合成人网| 亚洲精品ady| 1769国内精品视频在线播放| 欧美精品久久久久久久| 成人av资源在线播放| 2019中文字幕在线观看| 国产一区二区日韩精品欧美精品| 国产精品成人一区二区| 97精品在线观看| 国产美女扒开尿口久久久| 97人洗澡人人免费公开视频碰碰碰| 日韩中文av在线| 成人免费网站在线看| www国产亚洲精品久久网站| 17婷婷久久www| 姬川优奈aav一区二区| 国产丝袜精品第一页| 欧美一级大片在线免费观看| 69久久夜色精品国产69| 久久久久久国产免费| 亚洲欧美日本伦理| 亚洲视频欧洲视频| 在线日韩日本国产亚洲| 欧美电影免费观看大全| 中文字幕精品一区久久久久| 国产精品久久久久999| 欧美影院成年免费版| 怡红院精品视频| 51色欧美片视频在线观看| 亚洲欧洲日产国产网站| 最新国产精品亚洲| 亚洲精品v欧美精品v日韩精品| 久久精品国产一区| 久热精品视频在线观看一区| 92看片淫黄大片欧美看国产片| 国产精品91一区| 亚洲精品99久久久久中文字幕| 亚洲白拍色综合图区| 国内外成人免费激情在线视频| 亚洲欧洲视频在线| 亚洲欧美国产精品va在线观看| 亚洲综合国产精品| 日本成人免费在线| 久久久久久久久国产| 亚洲图片欧美日产| 欧美在线日韩在线| 欧美久久精品一级黑人c片| 成人高清视频观看www| 欧美成人精品h版在线观看| 欧美激情一区二区久久久| 日本中文字幕久久看| 国产aⅴ夜夜欢一区二区三区| 国产精品高潮呻吟视频| 亚洲性生活视频在线观看| 亚洲精品之草原avav久久| 久久综合88中文色鬼| 亚洲图片制服诱惑| 久久久噜久噜久久综合| 国产精品视频色| 亚洲人成电影在线| 一级做a爰片久久毛片美女图片| 岛国av一区二区三区| 91精品国产沙发| 日韩成人网免费视频| 中文字幕精品一区久久久久| 亚洲女成人图区| 亚洲黄色成人网| 中文字幕精品一区久久久久| 91av视频在线观看| 91大神福利视频在线| 精品久久香蕉国产线看观看亚洲| 欧美www在线| 日韩男女性生活视频| 俺去亚洲欧洲欧美日韩| 欧美一区二区三区精品电影| 亚洲欧美日韩成人| 38少妇精品导航| 8090成年在线看片午夜| 欧美麻豆久久久久久中文| 色偷偷亚洲男人天堂| 中国china体内裑精亚洲片| 中文字幕亚洲欧美在线| 日韩毛片在线观看| 日韩中文字幕免费看| 欧美精品少妇videofree| 欧美丰满片xxx777| 亚洲电影免费观看高清| 日本19禁啪啪免费观看www| 国产精品最新在线观看| 国产亚洲美女久久| 日韩精品久久久久久福利| 欧美精品一区二区三区国产精品| 国产一区香蕉久久| 国产精品男人爽免费视频1| 精品无码久久久久久国产| 日本精品性网站在线观看| 中文字幕精品久久| 亚洲丁香久久久| 久久久亚洲影院你懂的| 日韩在线观看免费高清| 国产成人精品免高潮费视频| 久久久久九九九九| 懂色av中文一区二区三区天美|