日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EGOImageView 解析

發(fā)布時間:2024/9/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EGOImageView 解析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

在看EGOImageLoader源碼的時候首先個人感覺要先理解里面的幾個概念

1.inline 開頭的函數(shù)表示內聯(lián)函數(shù)。作用是用函數(shù)名直接代替表達式,也就是說執(zhí)行到這一行代碼的時候不會去調用函數(shù),而是直接執(zhí)行函數(shù)體。同樣也有一定限制,那就是函數(shù)體不能太復雜,不能有循環(huán)和開關語句。最適合就是取值,而在EGOImageLoader這個框架中就是根據(jù)URL生成一個key返回。

inline?static?NSString* keyForURL(NSURL* url, NSString* style) {

?????if(style) {

???????????return [NSStringstringWithFormat:@"EGOImageLoader-%u-%u", [[url description] hash], [style hash]];

?????} else {

????? ?????return [NSStringstringWithFormat:@"EGOImageLoader-%u", [[url description] hash]];

?????}

}

********hash的作用是返回一個全局唯一的數(shù)字

2.需要了解的是EGO用的是觀察者模式來回調函數(shù),也就是說在調用imageForURL方法的時候會根據(jù)URL創(chuàng)建屬于這個圖片的專屬通知,當加載完成后會發(fā)出通知,image會在notification的userinfo里面存著,并以object的形式伴隨通知發(fā)過去。


****************************************************************


使用EGOImageView,

1.創(chuàng)建對象

imageView = [[EGOImageViewalloc] initWithPlaceholderImage:[UIImageimageNamed:@"placeholder.png"]];

imageView.frame = CGRectMake(4.0f, 4.0f, 36.0f, 36.0f);

[self.contentViewaddSubview:imageView];

2.把URL賦給imageURL這個屬性

imageView.imageURL = [NSURLURLWithString:flickrPhoto];

3.在賦給這個屬性的時候會自動調用屬性的set方法,- (void)setImageURL:(NSURL *)aURL ;

在這個方法里,用注釋的形式寫出來

? ? ?if(imageURL) {

??????? //注銷兩個通知

????? ? [[EGOImageLoadersharedImageLoader] removeObserver:selfforURL:imageURL];

??????? //引用計數(shù)減一并置空

????? ??[imageURLrelease];

????? ? imageURL = nil;

?????}


?????if(!aURL) {

??????? //設置默認圖片

????? ? self.image = self.placeholderImage;

???? ? ?imageURL = nil;

??? ???return;

?????} else {

??????? //引用計數(shù)加一并且賦給imageURL

???? ? ?imageURL = [aURL retain];

?????}


?????[[EGOImageLoadersharedImageLoader] removeObserver:self];

? ? ? ? ?//調用loader的方法來根據(jù)URL加載圖片

? ? ?UIImage* anImage = [[EGOImageLoader?sharedImageLoader] imageForURL:aURL shouldLoadWithObserver:self];

? ? ?//如果緩存有側會立刻返回,如果緩存沒有則會先設置默認圖片,當加載圖片完畢的時候會以通知的方法進行回調

?????if(anImage) {

??????????self.image = anImage;


??????????// trigger the delegate callback if the image was found in the cache

??????????if([self.delegaterespondsToSelector:@selector(imageViewLoadedImage:)]) {

??????????[self.delegateimageViewLoadedImage:self];

??????????}

?????} else {

??????????self.image = self.placeholderImage;

?????}

4.通知回調imageLoaderDidLoad這個方法

- (void)imageLoaderDidLoad:(NSNotification*)notification {

if(![[[notification userInfo] objectForKey:@"imageURL"] isEqual:self.imageURL]) return;


?????UIImage* anImage = [[notification userInfo] objectForKey:@"image"];

?????self.image = anImage;

??????????//這個方法會調用drawrect的方法

??????????[selfsetNeedsDisplay];


?????if([self.delegaterespondsToSelector:@selector(imageViewLoadedImage:)]) {

??????????[self.delegateimageViewLoadedImage:self];

?????}

}

5.在這個類最重要的方法就是?[[EGOImageLoader?sharedImageLoader]?imageForURL:aURL?shouldLoadWithObserver:self];

這個方法了,第一個是傳URL,第二個是傳觀察者的對象。通過這個方法來加載圖片,成功后會調用委托方法- (void)imageLoaderDidLoad:(NSNotification*)notification ;









轉載于:https://my.oschina.net/sunqichao/blog/94506

總結

以上是生活随笔為你收集整理的EGOImageView 解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: jizz视频在线观看 | 91福利视频网 | 日韩av二区 | 亚洲欧美精品suv | jizz中文字幕 | 91视频论坛| 国产午夜一级片 | 国产尤物在线观看 | 日韩一区二区三区四区五区 | 亚洲精品小视频在线观看 | 国产视频综合在线 | 亚洲欧洲日本国产 | 在线中文字幕观看 | 亚洲伦理一区 | 亚洲美女一级片 | 欧美三级网 | 999久久久久 | 日本精品一区二区 | 在线看免费 | 午夜污片 | ass日本粉嫩pics珍品 | 日韩中文字幕在线免费观看 | 国产高清在线视频观看 | 日韩一级免费 | 成人乱人乱一区二区三区 | 亚洲精品乱码久久久久久蜜桃91 | 日韩在线视频二区 | 中文字幕欧美在线观看 | www.色播.com | 午夜免费网| 奇米色综合 | 一区二区乱子伦在线播放 | 免费观看a级片 | 国产成人在线视频免费观看 | 少妇激情一区二区三区视频 | 自拍亚洲综合 | 成人午夜视频免费观看 | 亚洲精品自拍视频 | 大奶毛片| 欧美xxxx非洲 | 黄色污污视频网站 | 国产日韩成人内射视频 | 国内偷拍第一页 | 亚洲精品xxxx | 精品无人国产偷自产在线 | 用力挺进新婚白嫩少妇 | 日本一区二区三区在线看 | 天天操网 | 日本xxxx18高清hd | 欧美午夜在线视频 | 男女做激情爱呻吟口述全过程 | 中文字幕一区二区三区乱码 | 日韩电影一区二区在线观看 | 国产三极片 | 风流少妇一区二区三区91 | 日韩第一页在线 | 国产区欧美区日韩区 | 亚洲成人一级片 | 日本不卡视频一区二区 | 苍井空亚洲精品aa片在线播放 | 好吊视频一区 | 老司机一区二区 | 精品黑人一区二区三区观看时间 | av播播 | 国产精品日本一区二区在线播放 | 国产乱国产乱老熟300部视频 | 91精品国产自产91精品 | 捆绑裸体绳奴bdsm亚洲 | 美日韩一区二区 | 欧美日韩国产在线一区 | 久久久黄色片 | 激情视频激情小说 | 亚洲人色| 97干干| 人妻互换一区二区激情偷拍 | 一卡二卡三卡 | 午夜一级影院 | 99re在线视频| 久久久久青草 | 韩国激情呻吟揉捏胸视频 | 日本黄色三级网站 | 青青草原国产视频 | 北岛玲av| 丰满大乳少妇在线观看网站 | 玖玖精品视频 | 岛国毛片在线观看 | 黄色网址你懂的 | 少妇被又大又粗又爽毛片久久黑人 | 日本高清视频在线播放 | 禁片天堂 | 久久99热人妻偷产国产 | 成人av在线网 | 免费中文字幕视频 | 欧美一区二区三区四区五区六区 | 欧美日韩精品三区 | 五月婷综合 | 黑人一区二区三区四区五区 | 国产一区二区免费电影 | 国产精品免费看久久久无码 |