iOS 加載網(wǎng)絡(luò)圖片&瀑布流&cell高度自適應(yīng)

寫(xiě)在前面吧:
現(xiàn)目前是這樣的:有數(shù)量不等的圖片需要瀑布流顯示棕兼,每張圖片高寬度各有不同
初步思路:根據(jù)上述問(wèn)題需求障斋,可知贞瞒,使用表視圖為最佳方式
關(guān)鍵: 圖片高寬度不定,cell需要?jiǎng)討B(tài)計(jì)算高度摆寄;圖片需做縮放處理失暴,適應(yīng)屏幕
使用SDWebImage下載圖片

思路就如上所述,具體代碼如下:

1微饥、計(jì)算cell高度(前提是已做好數(shù)據(jù)請(qǐng)求處理)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    // 先從緩存中查找圖片
    UIImage *image = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:self.sdwebArr[indexPath.row]];
    if (!image) {
        image = [UIImage imageNamed:@"store_no_data"];
    }
    //H = H*(SCREEN_WIDTH/W) = 高度*(屏幕/圖片寬)
    CGFloat imageHeight = image.size.height * SCREEN_WIDTH/image.size.width;
    return imageHeight;
}
2逗扒、cellForRowAtIndexPath(調(diào)用configureCell: atIndexPath:方法)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    ShopDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
    if (cell == nil) {
        cell = [[ShopDetailCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
    }
    [self configureCell:cell atIndexPath:indexPath];

    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell;
}
3、調(diào)用(downloadImage: forIndexPath:)
- (void)configureCell:(ShopDetailCell *)cell atIndexPath:(NSIndexPath *)indexPath {
    NSString *imgURL = self.sdwebArr[indexPath.row];
    UIImage *cachedImage = [[SDImageCache sharedImageCache]imageFromDiskCacheForKey:imgURL];
    
    if (!cachedImage) {
        [self downloadImage:self.sdwebArr[indexPath.row] forIndexPath:indexPath];

    }else{
        [cell.imgBtn setBackgroundImage:cachedImage forState:UIControlStateNormal];
    }
}
4欠橘、下載對(duì)應(yīng)圖片矩肩、使用GCD回到主線程刷新UI
- (void)downloadImage:(NSString *)imageURL forIndexPath:(NSIndexPath *)indexPath {
    [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[NSURL URLWithString:imageURL] options:SDWebImageDownloaderUseNSURLCache progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
        //nothing to do
    } completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
        [[SDImageCache sharedImageCache] storeImage:image forKey:imageURL toDisk:YES completion:^{
            
        }];
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.detailTableView reloadData];
        });
    }];
}

結(jié)束語(yǔ):
感謝icefishlily的blog
當(dāng)你以為你已經(jīng)夠努力時(shí),你總會(huì)遇到更優(yōu)秀的人肃续,見(jiàn)到更不可思議的風(fēng)景黍檩。
諸君叉袍,共勉之~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市刽酱,隨后出現(xiàn)的幾起案子喳逛,更是在濱河造成了極大的恐慌,老刑警劉巖棵里,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件润文,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡殿怜,警方通過(guò)查閱死者的電腦和手機(jī)典蝌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)头谜,“玉大人骏掀,你說(shuō)我怎么就攤上這事∏呛唬” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵款侵,是天一觀的道長(zhǎng)末荐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)新锈,這世上最難降的妖魔是什么甲脏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮妹笆,結(jié)果婚禮上块请,老公的妹妹穿的比我還像新娘。我一直安慰自己拳缠,他們只是感情好墩新,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著窟坐,像睡著了一般海渊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哲鸳,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天臣疑,我揣著相機(jī)與錄音,去河邊找鬼徙菠。 笑死讯沈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的婿奔。 我是一名探鬼主播缺狠,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼问慎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了儒老?” 一聲冷哼從身側(cè)響起蝴乔,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驮樊,沒(méi)想到半個(gè)月后薇正,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡囚衔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年挖腰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片练湿。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡猴仑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肥哎,到底是詐尸還是另有隱情辽俗,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布篡诽,位于F島的核電站崖飘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏杈女。R本人自食惡果不足惜朱浴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望达椰。 院中可真熱鬧翰蠢,春花似錦、人聲如沸啰劲。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蝇裤。三九已至趁尼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間猖辫,已是汗流浹背酥泞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啃憎,地道東北人芝囤。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親悯姊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羡藐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 29,334評(píng)論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,090評(píng)論 1 32
  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱(chēng)項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明先生_X自主閱讀 15,969評(píng)論 3 119
  • 繼新浪家居的年度熱詞榜后悯许,果庫(kù)也推出了一份備受矚目的年度消費(fèi)報(bào)告仆嗦,告訴我們?cè)谶^(guò)去的一年,有 100 家淘寶店很受歡...
    納谷nakko閱讀 5,800評(píng)論 7 141
  • 昨天去看了馮小剛導(dǎo)演的電影《芳華》,加上最近剛讀完李笑來(lái)的《把時(shí)間當(dāng)朋友》垃僚,數(shù)次落淚集绰,感觸頗多,如鯁在喉谆棺,不吐不快...
    悅來(lái)越好1閱讀 170評(píng)論 1 1