成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

IOS開發中如何解決TableView中圖片延時加載

移動開發 iOS
IOS開發中如何解決TableView中圖片延時加載是本文要介紹的內容,主要是來學習TableView加載圖片的問題。具體內容來看本文詳細內容。

IOS開發中如何解決TableView圖片延時加載是本文要介紹的內容,主要是來學習TableView加載圖片的問題。具體內容來看本文詳細內容。

經常我們會用tableView顯示很多條目, 有時候需要顯示圖片, 但是一次從服務器上取來所有圖片對用戶來浪費流量, 對服務器也是負擔.最好是按需加載,即當該用戶要瀏覽該條目時再去加載它的圖片。

重寫如下方法

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

這雖然解決了延時加載的問題, 但當網速很慢, 或者圖片很大時(假設,雖然一般cell中的圖很小),你會發現程序可能會失去對用戶的響應.

原因是

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

這個方法可能要花費大量的時間,主線程要處理這個method.

所以失去了對用戶的響應.

所以要將該方法提出來:

  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];  

然后再新開一個線程去做這件事情

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

同理當我們需要長時間的計算時,也要新開一個線程 去做這個計算以避免程序處于假死狀態

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

小結:IOS開發中如何解決TableView圖片延時加載的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-09 10:05:57

TableView服務器圖片

2013-06-26 16:14:26

Android加載圖片內存溢出

2023-10-30 18:35:47

MySQL主從延時

2011-06-16 14:12:30

Qt Mysql 驅動

2025-02-11 12:29:58

2017-02-06 19:26:10

開發業務應用

2021-10-20 20:27:55

MySQL死鎖并發

2019-11-05 14:00:23

Windows 10Outlook附件

2017-09-23 22:07:24

深度學習N 體問題GAN

2017-09-28 10:40:10

深度學習多體問題多代理系統

2023-07-05 14:38:09

2013-10-16 16:17:15

iOS開發優化方案

2011-09-28 10:13:58

2019-08-15 07:43:38

TCP網絡協議丟包

2011-06-01 09:20:10

軟件項目

2018-07-02 16:00:13

Windows 10Windows后臺進程

2013-12-16 11:01:08

OpenSUSEOpenSUSE 12VirtualBox

2013-08-16 10:04:46

OpenSUSE 12VirtualBox

2018-06-14 09:00:00

WordPress瀏覽器Web服務器

2015-03-02 09:50:14

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男女羞羞免费网站 | 浮生影院免费观看中文版 | 免费的日批视频 | 最近中文字幕免费 | 久久青青 | 中文字幕一区二区三区四区五区 | 国产在线看片 | 久久88 | 白浆在线 | 欧美狠狠操| 一区二区三区国产视频 | 日韩三级在线 | 正在播放国产精品 | 成人av观看 | 一区二区三区免费 | 日韩精品 | 黄色欧美| 国产精品久久久久久久白浊 | 欧美视频一区 | 99精品网 | 日本电影免费完整观看 | 午夜精品一区二区三区在线观看 | 超碰8 | 国产欧美一区二区三区在线看蜜臀 | 国产午夜影院 | 成人国产精品免费观看 | 中文字幕蜜臀 | 国产黄色在线观看 | 中文字幕在线观看视频网站 | 亚洲精彩视频在线观看 | 欧美一级艳情片免费观看 | 国产精品久久久久久模特 | 黄片毛片免费看 | 麻豆天堂 | av中文在线 | 四虎最新| 国产精品夜色一区二区三区 | 一区二区三区在线 | 成人欧美一区二区三区色青冈 | 欧美一区视频 | 老司机精品福利视频 |