国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS-UITableViewCell對象是怎么重用的?

2019-11-14 20:41:23
字體:
來源:轉載
供稿:網友

 

 

iOS設備的內存有限,如果用UITableView顯示成千上萬條數據,

就需要成千上萬個UITableViewCell對象的話,

那將會耗盡iOS設備的內存。要解決該問題,需要重用UITableViewCell對象。

(蘋果一向很注重的應用的性能優化和用戶的體驗)

 

 

 

重用原理:

當滾動列表時,部分UITableViewCell會移出窗口,

UITableView會將窗口外的UITableViewCell放入一個對象池中,等待重用。

當UITableView要求dataSource返回UITableViewCell時,

dataSource會先查看這個對象池

如果池中有未使用的UITableViewCell,dataSource會用新的數據配置這個UITableViewCell,然后返回給UITableView,重新顯示到窗口中,從而避免創建新對象。

 

 

 

還有一個非常重要的問題:
有時候需要自定義UITableViewCell(用一個子類繼承UITableViewCell),而且每一行用的不一定是同一種UITableViewCell(如QQ,短信聊天布局),
所以一個UITableView可能擁有不同類型的UITableViewCell,
對象池中也會有很多不同類型的UITableViewCell,
那么UITableView在重用UITableViewCell時可能會得到錯誤類型的UITableViewCell!
 
 

解決方案:

UITableViewCell有個NSString *reuseIdentifier屬性,可以在初始化UITableViewCell的時候傳入一個特定的字符串標識來設置reuseIdentifier(一般用UITableViewCell的類名)。當UITableView要求dataSource返回UITableViewCell時,先通過一個字符串標識到對象池中查找對應類型的UITableViewCell對象,如果有,就重用,如果沒有,就傳入這個字符串標識來初始化一個UITableViewCell對象。

 

 

 

                                                                清澈Saup


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临漳县| 玛沁县| 沈丘县| 永安市| 尼勒克县| 墨江| 武穴市| 房产| 东平县| 喜德县| 汤原县| 馆陶县| 芜湖市| 镇沅| 游戏| 甘南县| 开远市| 松江区| 三台县| 西贡区| 万荣县| 托克逊县| 沾益县| 漯河市| 锡林浩特市| 兴仁县| 平江县| 织金县| 车险| 麟游县| 廊坊市| 舟山市| 瑞丽市| 通辽市| 土默特右旗| 贵州省| 龙口市| 安宁市| 南投市| 根河市| 保德县|