亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS開發之UITableView詳解

2020-07-26 03:22:37
字體:
來源:轉載
供稿:網友

一、UITableView基本介紹

默認的UITableView有2種風格:

  1. UITableViewStylePlain(不分組)
  2. UITableViewStyleGrouped(分組)

UITableView中的數據只有行的概念,沒有列的概念,UITableView的每行數據就是一個UITableViewCell。
自帶的UITableViewCell的類型選擇有:

復制代碼 代碼如下:

typedef NS_ENUM(NSInteger, UITableViewCellStyle) {
    UITableViewCellStyleDefault,    // 左側顯示textLabel(不顯示detailTextLabel),imageView可選(顯示在最左邊)
    UITableViewCellStyleValue1,     // 左側顯示textLabel、右側顯示detailTextLabel(默認藍色),imageView可選(顯示在最左邊)
    UITableViewCellStyleValue2,     // 左側依次顯示textLabel(默認藍色)和detailTextLabel,imageView可選(顯示在最左邊)
    UITableViewCellStyleSubtitle    // 左上方顯示textLabel,左下方顯示detailTextLabel(默認灰色),imageView可選(顯示在最左邊)
};

二、UITableViewDataSource數據源

數據源的作用就是告訴UITableView,我該顯示什么數據

復制代碼 代碼如下:

#pragma mark 常用數據源方法
#pragma mark 返回分組數
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
#pragma mark 返回每組行數
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
#pragma mark 返回每行的單元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
#pragma mark 返回每組頭標題名稱
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
#pragma mark 返回每組尾部說明
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

計算分組數 -> 計算每組行數 -> 生成分組索引 -> 生成單元格
注意:cellForRowAtIndexPath只生產當前顯示在界面上的單元格

三、UITableViewDelegate代理

代理的作用是告訴UITableView,我該怎么顯示和響應

復制代碼 代碼如下:

#pragma mark - 常用代理方法
#pragma mark 設置分組頭部的內容高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
#pragma mark 設置每行高度(每行高度可以不一樣)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
#pragma mark 設置分組尾部的內容高度
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
#pragma mark 點擊了某一行
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
#pragma mark 設置分組的頭部視圖
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;
#pragma mark 設置分組的尾部視圖
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;

四、UITableView刷新列表方法

復制代碼 代碼如下:

#pragma mark 刷新整個表格
- (void)reloadData;
#pragma mark 刷新指定的行
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
#pragma mark 刷新指定的分組
- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
#pragma mark 刪除時刷新指定的行數據
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
#pragma mark 添加時刷新指定的行數據
- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

五、UITableViewCell的重用機制

在UITableView內部有一個緩存池,專門用來緩存UITableViewCell,因為UITableView不是一下子顯示全部Cell,而是以 所見即所得 的方式,手機上看的見的Cell,才有存在的對象UITableViewCell實例。具體表現如下:

每次顯示新的Cell的時候,都是先從緩存池中取出對應的UITableViewCell對象,進行 重新初始化 顯示。如果緩存池中沒有,才創建新的UITableViewCell對象
每當某個Cell被移出 可見區域 外后,就會被 回收 到緩存池中
所以盡管要展示的數據巨大,但內存中存在的UITableViewCell也是有限的,極大的降低了對內存的需求。

復制代碼 代碼如下:

# pragma mark 在tableView:cellForRowAtIndexPath:方法中使用UITableView的重用機制
// 由于此方法調用十分頻繁,cell的標示聲明成靜態變量有利于性能優化
static NSString *cellIdentifier = @"UITableViewCellIdentifierKey1";
// 首先根據標識去緩存池取
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
// 如果緩存池沒有找到,則重新創建并放到緩存池中
if(!cell){
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier];
}

六、系統自帶的UITableViewCell

我們基本上很少使用系統自帶的UITableViewCell,樣式太過于死板了。

七、自定義Cell

基本步驟:
自定義類XXXTableViewCell,繼承UITableViewCell
重寫-(id)initWithStyle:reuseIdentifier:方法,添加子控件
最好重寫layoutSubView方法,設置子控件frame
然后在UITableView的代理方法tableView:cellForRowAtIndexPath:中使用重用機制創建該類XXXTableViewCell,再對cell進行初始化

八、MVC模式

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品视频免费在线观看| 久久777国产线看观看精品| 久久久中文字幕| 国产三级精品网站| 国产精品美女网站| 国产亚洲美女精品久久久| 久久久av电影| 国产精品精品久久久| 日韩经典一区二区三区| 国产精品白丝av嫩草影院| 国产精品视频在线播放| 亚洲精品国产精品国产自| xxxx性欧美| 国产一区二区在线免费视频| 亚洲少妇中文在线| 久久伊人91精品综合网站| 神马久久桃色视频| 亚洲成人激情在线观看| 5252色成人免费视频| 国产精品色婷婷视频| 色中色综合影院手机版在线观看| 欧美激情视频一区二区三区不卡| 高跟丝袜一区二区三区| 亚洲精品一区中文字幕乱码| 久久好看免费视频| 亚洲精品乱码久久久久久金桔影视| 欧美日韩国产综合新一区| 国产成人精品久久亚洲高清不卡| 欧美老少做受xxxx高潮| 在线观看国产成人av片| 日韩欧美精品免费在线| 免费91在线视频| 久久九九全国免费精品观看| 精品久久久久久久久久久久久久| 狠狠躁夜夜躁人人爽天天天天97| 午夜精品美女自拍福到在线| 欧美激情一级精品国产| 欧美老少配视频| 欧美丝袜美女中出在线| 日本久久中文字幕| 国产丝袜一区二区三区免费视频| 久久精品国产91精品亚洲| 国产深夜精品福利| 欧美成人中文字幕| 久久精品国产v日韩v亚洲| 欧美激情综合色| 欧美寡妇偷汉性猛交| 国产精品入口免费视| 九九综合九九综合| 日韩欧美在线字幕| 欧美日韩中文字幕日韩欧美| 高清欧美性猛交xxxx黑人猛交| 国产在线一区二区三区| 黄色成人av在线| 国产日韩av在线播放| 国产免费观看久久黄| 国产精品久久久久久久久| 欧美成人午夜影院| 自拍亚洲一区欧美另类| 91高潮精品免费porn| 欧美噜噜久久久xxx| 久久亚洲综合国产精品99麻豆精品福利| 精品久久久在线观看| 亚洲一品av免费观看| www亚洲精品| 精品久久久久久久中文字幕| 日韩欧美在线看| 欧美高清videos高潮hd| 日韩精品在线免费| 久久视频在线看| 国产精品第一第二| 亚洲福利视频网| 尤物99国产成人精品视频| 久久久伊人欧美| 亚洲国产中文字幕在线观看| 日产精品99久久久久久| 久久av在线看| 久久天天躁日日躁| 亚洲精品在线视频| 福利视频第一区| 都市激情亚洲色图| 日韩成人av在线播放| 亚洲美女激情视频| 日韩精品视频在线播放| 97在线免费视频| 欧美另类精品xxxx孕妇| 中文字幕久久亚洲| 亚洲免费伊人电影在线观看av| 亚洲欧美日韩综合| 91免费的视频在线播放| 亚洲国产精品va在线观看黑人| 国模私拍视频一区| 亚洲欧美一区二区精品久久久| 日韩精品在线看| 欧美日韩国产精品一区二区三区四区| 国产成人+综合亚洲+天堂| 国产精品香蕉av| 精品日韩视频在线观看| 欧美日韩激情视频8区| 91av国产在线| 成人妇女免费播放久久久| 国产精品精品一区二区三区午夜版| 69国产精品成人在线播放| 欧美xxxx做受欧美.88| 日韩精品视频在线免费观看| 国产97在线视频| 亚洲欧美成人一区二区在线电影| 日韩美女在线观看一区| 久久九九有精品国产23| 日韩精品在线影院| 国产精品国产福利国产秒拍| 久久av红桃一区二区小说| 国产精品入口日韩视频大尺度| 亚洲国产精品久久久久久| 中文字幕欧美日韩| 亚洲国产精品女人久久久| 国产成人精彩在线视频九色| 色综合久综合久久综合久鬼88| 九九久久精品一区| 欧美日韩亚洲视频一区| 中文欧美在线视频| 日韩高清不卡av| 亚洲视频一区二区三区| 欧美视频中文字幕在线| 欧美在线视频一区| 在线观看国产精品淫| 成人免费福利在线| 久久99精品国产99久久6尤物| 黑人巨大精品欧美一区二区三区| 国内伊人久久久久久网站视频| 久久99精品久久久久久青青91| 97在线视频观看| 69**夜色精品国产69乱| 久久精品青青大伊人av| 一本一本久久a久久精品牛牛影视| 欧美激情性做爰免费视频| 欧美午夜无遮挡| 国产成人精品日本亚洲| 伊人久久大香线蕉av一区二区| 69久久夜色精品国产7777| 国产成人精品一区二区| 日韩国产欧美精品一区二区三区| 国产精品久久久久久久久久ktv| 精品成人久久av| 欧美在线免费视频| 欧美精品在线网站| 精品国产乱码久久久久酒店| 精品无人区太爽高潮在线播放| 国产美女直播视频一区| 92国产精品视频| 夜夜狂射影院欧美极品| 欧美性在线观看| 久久久电影免费观看完整版| 欧美日韩中文字幕在线| 久久久影视精品| 日韩综合视频在线观看| 一本色道久久88综合亚洲精品ⅰ| 亚洲福利在线视频| 日韩亚洲成人av在线| 韩国v欧美v日本v亚洲| 欧美—级高清免费播放| 色综合天天综合网国产成人网| 国色天香2019中文字幕在线观看| 国产欧洲精品视频|