偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

IOS開發(fā)中如何解決TableView中圖片延時(shí)加載

移動(dòng)開發(fā) iOS
IOS開發(fā)中如何解決TableView中圖片延時(shí)加載是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)TableView加載圖片的問題。具體內(nèi)容來看本文詳細(xì)內(nèi)容。

IOS開發(fā)中如何解決TableView圖片延時(shí)加載是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)TableView加載圖片的問題。具體內(nèi)容來看本文詳細(xì)內(nèi)容。

經(jīng)常我們會(huì)用tableView顯示很多條目, 有時(shí)候需要顯示圖片, 但是一次從服務(wù)器上取來所有圖片對(duì)用戶來浪費(fèi)流量, 對(duì)服務(wù)器也是負(fù)擔(dān).最好是按需加載,即當(dāng)該用戶要瀏覽該條目時(shí)再去加載它的圖片。

重寫如下方法

  1. - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath  
  2. {  
  3.     UIImage *image = [self getImageForCellAtIndexPath:indexPath];  //從網(wǎng)上取得圖片  
  4.     [cell.imageView setImage:image];  

這雖然解決了延時(shí)加載的問題, 但當(dāng)網(wǎng)速很慢, 或者圖片很大時(shí)(假設(shè),雖然一般cell中的圖很小),你會(huì)發(fā)現(xiàn)程序可能會(huì)失去對(duì)用戶的響應(yīng).

原因是

  1. UIImage *image = [self getImageForCellAtIndexPath:indexPath];  

這個(gè)方法可能要花費(fèi)大量的時(shí)間,主線程要處理這個(gè)method.

所以失去了對(duì)用戶的響應(yīng).

所以要將該方法提出來:

  1. - (void)updateImageForCellAtIndexPath:(NSIndexPath *)indexPath  
  2. {  
  3.     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
  4.     UIImage *image = [self getImageForCellAtIndexPath:indexPath];  
  5.     UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];  
  6.     [cell.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO];  
  7.     [pool release];  

然后再新開一個(gè)線程去做這件事情

  1. - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath  
  2. {  
  3.     [NSThread detachNewThreadSelector:@selector(updateImageForCellAtIndexPath:) toTarget:self withObject:indexPath];  

同理當(dāng)我們需要長時(shí)間的計(jì)算時(shí),也要新開一個(gè)線程 去做這個(gè)計(jì)算以避免程序處于假死狀態(tài)

以上代碼只是示例, 還可以改進(jìn)的更多, 比如從網(wǎng)上down下來一次后就將圖片緩存起來,再次顯示的時(shí)候就不用去下載。

小結(jié):IOS開發(fā)中如何解決TableView圖片延時(shí)加載的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-09 10:05:57

TableView服務(wù)器圖片

2013-06-26 16:14:26

Android加載圖片內(nèi)存溢出

2023-10-30 18:35:47

MySQL主從延時(shí)

2011-06-16 14:12:30

Qt Mysql 驅(qū)動(dòng)

2025-02-11 12:29:58

2017-02-06 19:26:10

開發(fā)業(yè)務(wù)應(yīng)用

2021-10-20 20:27:55

MySQL死鎖并發(fā)

2019-11-05 14:00:23

Windows 10Outlook附件

2017-09-23 22:07:24

深度學(xué)習(xí)N 體問題GAN

2017-09-28 10:40:10

深度學(xué)習(xí)多體問題多代理系統(tǒng)

2023-07-05 14:38:09

2013-10-16 16:17:15

iOS開發(fā)優(yōu)化方案

2011-09-28 10:13:58

2019-08-15 07:43:38

TCP網(wǎng)絡(luò)協(xié)議丟包

2011-06-01 09:20:10

軟件項(xiàng)目

2018-07-02 16:00:13

Windows 10Windows后臺(tái)進(jìn)程

2013-12-16 11:01:08

OpenSUSEOpenSUSE 12VirtualBox

2013-08-16 10:04:46

OpenSUSE 12VirtualBox

2018-06-14 09:00:00

WordPress瀏覽器Web服務(wù)器

2015-03-02 09:50:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)