99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

UITableView性能提升和優化(第3章)之二-創新互聯

接上一篇翻譯的內容。

創新互聯擁有一支富有激情的企業網站制作團隊,在互聯網網站建設行業深耕10多年,專業且經驗豐富。10多年網站優化營銷經驗,我們已為上1000家中小企業提供了成都網站建設、網站建設解決方案,定制網站建設,設計滿意,售后服務無憂。所有客戶皆提供一年免費網站維護!

再次運行測試

在重用cell之后,你可以再一次測試滾動性能。從表格3-3可以看出,在你正確重用cell之后,性能提升了一倍。

UITableView性能提升和優化(第3章) 之二

表格 3-3 重用cell之后測試的結果

結果顯示你的做法是正確的;但是,現在的性能依然不夠好。你總是想讓性能上升至0.6666-0.0001左右;對于一個標準的UITableViewCell這是一個正常的性能,就像在第一部分展示的那樣。所以下一部分將要學習如何重用p_w_picpaths,而不是每次調用的時候都創建一個新的p_w_picpath。

這就是你為什么要重用cell的原因。對于OS來說,創建和加載一個新的cell到內存中,都是要花費時間和內存資源的。這就是為什么tableview總是queue 一個cell進行重用,無論這個cell是否在屏幕之外。如果你重用cell,OS就不需要創建一個新的cell來顯示;它只需要獲取舊的cell,改變一些屬性,然后重新顯示這個cell。這個過程比OS創建一個新的cell要快的多。

重用圖片

顯示圖片的主要問題在于加載的時間,要么通過文件系統IO,要么通過網絡IO,都是非常耗時的。這個加載過程同樣會影響到滾動性能,當iOS不能返回cell來渲染UI時。

由于這個原因,請參考ReuseImageViewController這個給工程。首先我解釋一下在這些例子中,我為什么沒有使用[UIImage p_w_picpathd:@""]。p_w_picpathNamed做了一項非常重要的工作:它會在內存中緩存圖片,當你再次訪問的時候會重用它。使用這個方法的問題是它只能從bundle中獲取文件 --- 換句話說,圖片只能和app的源代碼放在一起。通常,你必須調用方法[UIImage alloc] initWithContentsOfFile:@""];或者[UIImage alloc] initWithData:data]]。調用這些方法,OS不會自動的在內存中緩存圖片。

所以,我希望你通過一個小的dictionary在內存中存儲圖片,來自己緩存圖片(請看第4章)。另外一個圖片處理非常重要的部分是多線程(請看第6章)。使用這個技術,你可以把耗時的的處理任務放到當前線程之外。在我的當前例子中,不會使用多線程,因為你必須立即了解很多新的概念。在本章結束的時候,你應該自己做完這個練習。

這是在NSDictionary緩存圖片的主要代碼(請不要使用這種方式存儲圖片,因為它會導致內存警告)。

// Code to store the p_w_picpath in the dictionary- (UIImage *)p_w_picpathWithName:(NSString *)name {

if ([self.p_w_picpathDictionary objectForKey:name]) {return [self.p_w_picpathDictionary objectForKey:name];

}

UIImage *p_w_picpath = [[UIImage alloc] initWithContentsOfFile:name];[self.p_w_picpathDictionary     setObject:p_w_picpath forKey:name];
return p_w_picpath;

}

下面這個是提取最近一次圖片的主要代碼。

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

  static NSString *CellIdentifier = @"CellIdentifier";

  ReuseTableViewCell *cell = (ReuseTableViewCell *) [selfgetCellWithTableView:tableView   cellIdentifier:CellIdentifier nibName:@"ReuseTableViewCell"];

  NSString *avatarFile = [NSString stringWithFormat:@"a0"];
  NSString *avatarName = [[NSBundle mainBundle] pathForResource:avatarFile ofType:@"jpeg"];

  cell.avatar.p_w_picpath = [self p_w_picpathWithName:avatarName];

  cell.userName.text = [NSString stringWithFormat:@"hi here: %d", indexPath.row];// Configure the cell.

  return cell;
}

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網站名稱:UITableView性能提升和優化(第3章)之二-創新互聯
網頁URL:http://www.yijiale78.com/article40/djgceo.html

成都網站建設公司_創新互聯,為您提供移動網站建設ChatGPT響應式網站網站導航網站營銷關鍵詞優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

營銷型網站建設