UITableView
//轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3496969.htmlhtml
本文對應pdf文檔下載連接,猛戳->:UITableView.pdf
1.6 MBweb
UITableViewapp
l
iOS
中顯示數據列表最經常使用的一個控件,支持垂直滾動
數據源 (dataSource) 和代理 (delegate)
l UITableView 須要一個數據源 (dataSource) 來顯示數據 , UITableView 會向數據源查詢一共有多少行數據以及每一行顯 示什麼數據等。沒有設置數據源的 UITableView 只是個空殼。凡 是遵照 UITableViewDataSource 協議的 OC 對象,均可以 是 UITableView 的數據源
l 一般都要爲 UITableView 設置代理對象 (delegate), 以便 在 UITableView 觸發一下事件時作出相應的處理,好比選中了某 一行。凡是遵照了 UITableViewDelegate 協議的 OC 對象,均可 以是 UITableView 的代理對象
l 通常會讓控制器充當 UITableView 的 dataSource 和 delegate
UITableViewDataSource
l @required
u -(NSInteger) tableView :(UITableView*)tableView
numberOfRowsInSection :(NSInteger)section;
第 section 分區一共有多少行
u -(UITableViewCell*) tableView :(UITableView*)tableView cellForRowAtIndexPath :(NSIndexPath *)indexPath;
建立第 section 分區第 row 行的 UITableViewCell 對象 (indexPath 包含 了 section 和 row)
l @optional
u -(NSInteger) numberOfSectionsInTableView :(UITableView
*)tableView; 一共有多少個分區
u -(NSString*) tableView :(UITableView*)tableView
titleForHeaderInSection :(NSInteger)section; 第 section 分區的頭部標題
UITableViewDataSource
u -(NSString*) tableView :(UITableView*)tableView titleForFooterInSection :(NSInteger)section;
第 section 分區的底部標題
u -(BOOL) tableView :(UITableView*)tableView
canEditRowAtIndexPath :(NSIndexPath *)indexPath;
某一行是否能夠編輯 ( 刪除 )
u -(BOOL) tableView :(UITableView*)tableView canMoveRowAtIndexPath :(NSIndexPath *)indexPath;
某一行是否能夠移動來進行從新排序
u -(NSArray*) sectionIndexTitlesForTableView :(UITableView *)tableView;
UITableView 右邊的索引欄的內容
UITableViewDelegate
l - (void) tableView :(UITableView *)tableView didSelectRowAtIndexPath :(NSIndexPath *)indexPath
選中了 UITableView 的某一行
l - (CGFloat) tableView :(UITableView *)tableView
heightForRowAtIndexPath :(NSIndexPath *)indexPath 某一行的高度
l - (CGFloat) tableView :(UITableView *)tableView heightForHeaderInSection :(NSInteger)section
第 section 分區頭部的高度
l - (CGFloat) tableView :(UITableView *)tableView
heightForFooterInSection :(NSInteger)section 第 section 分區尾部的高度
UITableViewDelegate
l - (UIView *) tableView :(UITableView *)tableView viewForHeaderInSection :(NSInteger)section
第 section 分區頭部顯示的視圖
l - (UIView *) tableView :(UITableView *)tableView
viewForFooterInSection :(NSInteger)section
第 section 分區尾部顯示的視圖
l - (NSInteger) tableView :(UITableView *)tableView indentationLevelForRowAtIndexPath :(NSIndexPath *)indexPath
設置每一行的等級縮進 ( 數字越小,等級越高 )
UITableViewCell
l UITableView 的每一行都是一個 UITableViewCell, 經過 dataSource 的 tableView : cellForRowAtIndexPath : 方法來初始化每一行
l UITableViewCell 是 UIView 的子類,內部有個默認的子視圖 : contentView 。 contentView 是 UITableViewCell 所顯示內容的父視圖,並負責顯示一些 輔助指示視圖。輔助指示視圖的做用是顯示一個表示動做的圖標,能夠經過設 置 UITableViewCell 的 accessoryType 來顯示,默認 是 UITableViewCellAccessoryNone( 不顯示輔助指示視圖 ) ,其餘值以下 :
u UITableViewCellAccessoryDisclosureIndicator
u UITableViewCellAccessoryDetailDisclosureButton
UITableViewCell 的 contentView
l contentView 下默認有 3 個子視圖,其中的 2 個是 UILabel( 通 過 UITableViewCell 的 textLabel 和 detailTextLabel 屬性訪問 ) ,第 3 個是 UIImageView( 經過 UITableViewCell 的 imageView 屬性訪問 )
l UITableViewCell 還有一個 UITableViewCellStyle 屬性,用於決定使 用 contentView 的哪些子視圖,以及這些子視圖在 contentView 中的位置
UITableViewCellStyleDefault
UITableViewCellStyleSubtitle
UITableViewCellStyleValue1
UITableViewCellStyleValue2
UITableViewCell 對象的重用原理
l iOS 設備的內存有限,若是用 UITableView 顯示成千上萬條數據,就需 要成千上萬個 UITableViewCell 對象的話,那將會耗盡 iOS 設備的 內存。要解決該問題,須要重用 UITableViewCell 對象
l 重用原理 :當滾動列表時,部分 UITableViewCell 會移出窗口 , UITableView 會將窗口外的 UITableViewCell 放入一個對象池中 ,等待重用。當 UITableView 要求 dataSource 返 回 UITableViewCell 時, dataSource 會先查看這個對象池,若是池 中有未使用的 UITableViewCell , dataSource 會用新的數據配置這 個 UITableViewCell ,而後返回給 UITableView ,從新顯示到窗 口中,從而避免建立新對象
UITableViewCell 對象的重用原理
l 還有一個很是重要的問題:有時候須要自定義 UITableViewCell( 用一個子類 繼承 UITableViewCell) ,並且每一行用的不必定是同一 種 UITableViewCell( 如短信聊天佈局 ) ,因此一個 UITableView 可能擁有不 同類型的 UITableViewCell ,對象池中也會有不少不一樣類型 的 UITableViewCell ,那麼 UITableView 在重用 UITableViewCell 時可能 會獲得錯誤類型的 UITableViewCell
l 解決方案 : UITableViewCell 有個 NSString * reuseIdentifier 屬性,可 以在初始化 UITableViewCell 的時候傳入一個特定的字符串標識來設 置 reuseIdentifier( 通常用 UITableViewCell 的類名 ) 。當 UITableView 要求 dataSource 返回 UITableViewCell 時,先經過一個字符串標識到對象池 中查找對應類型的 UITableViewCell 對象,若是有,就重用,若是沒有,就傳 入這個字符串標識來初始化一個 UITableViewCell 對象
一個 UITableView 中不一樣類型的 UITableViewCell
重用 UITableViewCell 對象
- (UITableViewCell *) tableView :(UITableView *)tableView
cellForRowAtIndexPath :(NSIndexPath *)indexPath {
static NSString *identifier = @"UITableViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier :identifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle :UITableViewCellStyleDefault reuseIdentifier :identifier] autorelease];
}
cell.textLabel.text = [NSString stringWithFormat:@"Text %i",
indexPath.row];
return cell;
}
UITableViewCell 的經常使用屬性
l 設置背景
u backgroundView
l 設置被選中時的背景視圖
u selectedBackgroundView
l selectionStyle 屬性可設置 UITableViewCell 被選中時的 背景顏色 : u UITableViewCellSelectionStyleNone 沒有顏色
u UITableViewCellSelectionStyleBlue 藍色(默認)
u UITableViewCellSelectionStyleGray 灰色
自定義 UITableViewCell
UITableView 經常使用方法
l - (id) dequeueReusableCellWithIdentifier :(NSString *)identifier
經過 identifier 在 ( 緩存 ) 池中找到對應的 UITableViewCell 對象
l - (void) deleteRowsAtIndexPaths :(NSArray *)indexPaths withRowAnimation :(UITableViewRowAnimation)animation
移除 indexPaths 範圍內的全部行
l @property(nonatomic,readonly) UITableViewStyle style 表格樣式
l @property(nonatomic,assign) id dataSource 數據源
l @property(nonatomic,assign) id delegate 代理
l @property(nonatomic,getter= isEditing ) BOOL editing 是否爲編輯模式
l @property(nonatomic) UITableViewCellSeparatorStyle separatorStyle 設置分隔線的樣式
l @property(nonatomic,retain) UIColor *separatorColor 設置分隔線的顏色
UITableView 經常使用方法
l @property(nonatomic,retain) UIView *tableHeaderView 表頭顯示的視圖
l @property(nonatomic,retain) UIView *tableFooterView 表尾顯示的視圖
l @property(nonatomic) BOOL allowsSelection
是否容許選中行
l @property(nonatomic) BOOL allowsSelectionDuringEditing 是否容許在編輯模式下選中行
l @property(nonatomic) BOOL allowsMultipleSelection 是否容許選中多行
l @property(nonatomic) BOOL allowsMultipleSelectionDuringEditing 是否容許在編輯模式下選中多行
UITableViewController
l 是 UIViewController 的子類, UITableViewController 默認扮演了 3 種角色 : 視 圖控制器、 UITableView 的數據源和代理
l UITableViewController 的 view 是個 UITablView, 由 UITableViewController 負責設置和顯示這個對象。 UITableViewController 對象被建立後,會將這 個 UITableView 對象的 dataSource 和 delegate 指向 UITableViewController 本身
數據源 (dataSource) 和代理 (delegate)
l UITableView 須要一個數據源 (dataSource) 來顯示數據 , UITableView 會向數據源查詢一共有多少行數據以及每一行顯 示什麼數據等。沒有設置數據源的 UITableView 只是個空殼。凡 是遵照 UITableViewDataSource 協議的 OC 對象,均可以 是 UITableView 的數據源
l 一般都要爲 UITableView 設置代理對象 (delegate), 以便 在 UITableView 觸發一下事件時作出相應的處理,好比選中了某 一行。凡是遵照了 UITableViewDelegate 協議的 OC 對象,均可 以是 UITableView 的代理對象
l 通常會讓控制器充當 UITableView 的 dataSource 和 delegate
UITableViewDataSource
l @required
u -(NSInteger) tableView :(UITableView*)tableView
numberOfRowsInSection :(NSInteger)section;
第 section 分區一共有多少行
u -(UITableViewCell*) tableView :(UITableView*)tableView cellForRowAtIndexPath :(NSIndexPath *)indexPath;
建立第 section 分區第 row 行的 UITableViewCell 對象 (indexPath 包含 了 section 和 row)
l @optional
u -(NSInteger) numberOfSectionsInTableView :(UITableView
*)tableView; 一共有多少個分區
u -(NSString*) tableView :(UITableView*)tableView
titleForHeaderInSection :(NSInteger)section; 第 section 分區的頭部標題
UITableViewDataSource
u -(NSString*) tableView :(UITableView*)tableView titleForFooterInSection :(NSInteger)section;
第 section 分區的底部標題
u -(BOOL) tableView :(UITableView*)tableView
canEditRowAtIndexPath :(NSIndexPath *)indexPath;
某一行是否能夠編輯 ( 刪除 )
u -(BOOL) tableView :(UITableView*)tableView canMoveRowAtIndexPath :(NSIndexPath *)indexPath;
某一行是否能夠移動來進行從新排序
u -(NSArray*) sectionIndexTitlesForTableView :(UITableView *)tableView;
UITableView 右邊的索引欄的內容
UITableViewDelegate
l - (void) tableView :(UITableView *)tableView didSelectRowAtIndexPath :(NSIndexPath *)indexPath
選中了 UITableView 的某一行
l - (CGFloat) tableView :(UITableView *)tableView
heightForRowAtIndexPath :(NSIndexPath *)indexPath 某一行的高度
l - (CGFloat) tableView :(UITableView *)tableView heightForHeaderInSection :(NSInteger)section
第 section 分區頭部的高度
l - (CGFloat) tableView :(UITableView *)tableView
heightForFooterInSection :(NSInteger)section 第 section 分區尾部的高度
UITableViewDelegate
l - (UIView *) tableView :(UITableView *)tableView viewForHeaderInSection :(NSInteger)section
第 section 分區頭部顯示的視圖
l - (UIView *) tableView :(UITableView *)tableView
viewForFooterInSection :(NSInteger)section
第 section 分區尾部顯示的視圖
l - (NSInteger) tableView :(UITableView *)tableView indentationLevelForRowAtIndexPath :(NSIndexPath *)indexPath
設置每一行的等級縮進 ( 數字越小,等級越高 )
UITableViewCell
l UITableView 的每一行都是一個 UITableViewCell, 經過 dataSource 的 tableView : cellForRowAtIndexPath : 方法來初始化每一行
l UITableViewCell 是 UIView 的子類,內部有個默認的子視圖 : contentView 。 contentView 是 UITableViewCell 所顯示內容的父視圖,並負責顯示一些 輔助指示視圖。輔助指示視圖的做用是顯示一個表示動做的圖標,能夠經過設 置 UITableViewCell 的 accessoryType 來顯示,默認 是 UITableViewCellAccessoryNone( 不顯示輔助指示視圖 ) ,其餘值以下 :
u UITableViewCellAccessoryDisclosureIndicator
u UITableViewCellAccessoryDetailDisclosureButton
//轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3496969.html佈局
UITableViewCell 的 contentView
l contentView 下默認有 3 個子視圖,其中的 2 個是 UILabel( 通 過 UITableViewCell 的 textLabel 和 detailTextLabel 屬性訪問 ) ,第 3 個是 UIImageView( 經過 UITableViewCell 的 imageView 屬性訪問 )
l UITableViewCell 還有一個 UITableViewCellStyle 屬性,用於決定使 用 contentView 的哪些子視圖,以及這些子視圖在 contentView 中的位置
UITableViewCellStyleDefault
UITableViewCellStyleSubtitle
UITableViewCellStyleValue1
UITableViewCellStyleValue2
UITableViewCell 對象的重用原理
l iOS 設備的內存有限,若是用 UITableView 顯示成千上萬條數據,就需 要成千上萬個 UITableViewCell 對象的話,那將會耗盡 iOS 設備的 內存。要解決該問題,須要重用 UITableViewCell 對象
l 重用原理 :當滾動列表時,部分 UITableViewCell 會移出窗口 , UITableView 會將窗口外的 UITableViewCell 放入一個對象池中 ,等待重用。當 UITableView 要求 dataSource 返 回 UITableViewCell 時, dataSource 會先查看這個對象池,若是池 中有未使用的 UITableViewCell , dataSource 會用新的數據配置這 個 UITableViewCell ,而後返回給 UITableView ,從新顯示到窗 口中,從而避免建立新對象
UITableViewCell 對象的重用原理
l 還有一個很是重要的問題:有時候須要自定義 UITableViewCell( 用一個子類 繼承 UITableViewCell) ,並且每一行用的不必定是同一 種 UITableViewCell( 如短信聊天佈局 ) ,因此一個 UITableView 可能擁有不 同類型的 UITableViewCell ,對象池中也會有不少不一樣類型 的 UITableViewCell ,那麼 UITableView 在重用 UITableViewCell 時可能 會獲得錯誤類型的 UITableViewCell
l 解決方案 : UITableViewCell 有個 NSString * reuseIdentifier 屬性,可 以在初始化 UITableViewCell 的時候傳入一個特定的字符串標識來設 置 reuseIdentifier( 通常用 UITableViewCell 的類名 ) 。當 UITableView 要求 dataSource 返回 UITableViewCell 時,先經過一個字符串標識到對象池 中查找對應類型的 UITableViewCell 對象,若是有,就重用,若是沒有,就傳 入這個字符串標識來初始化一個 UITableViewCell 對象
一個 UITableView 中不一樣類型的 UITableViewCell
重用 UITableViewCell 對象
- (UITableViewCell *) tableView :(UITableView *)tableView
cellForRowAtIndexPath :(NSIndexPath *)indexPath {
static NSString *identifier = @"UITableViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier :identifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle :UITableViewCellStyleDefault reuseIdentifier :identifier] autorelease];
}
cell.textLabel.text = [NSString stringWithFormat:@"Text %i",
indexPath.row];
return cell;
}
//轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3496969.htmlpost
UITableViewCell 的經常使用屬性
l 設置背景
u backgroundView
l 設置被選中時的背景視圖
u selectedBackgroundView
l selectionStyle 屬性可設置 UITableViewCell 被選中時的 背景顏色 : u UITableViewCellSelectionStyleNone 沒有顏色
u UITableViewCellSelectionStyleBlue 藍色(默認)
u UITableViewCellSelectionStyleGray 灰色
自定義 UITableViewCell
l
通常有兩種方式
:
1 用一個 xib 文件來 表 述 UITableViewCell 的內容 在這設置字符串標識,以便重用
2 經過代碼往 UITableViewCell 的 contentView 中添加子視圖,在 初始化方法 ( 好比 init 、 initWithStyle:reuseIdentifier: ) 中添加子控件,在 layoutSubviews 方法中分配子控件的位置和大小
UITableView 的編輯模式
l UITableView 有個 editing 屬性,設置爲 YES 時,能夠進入編輯模式。在編 輯模式下,能夠管理表格中的行,好比改變行的排列順序、增長行、刪除行 ,但不能修改行的內容
l 多種方式開啓編輯模式
u @property(nonatomic,getter=isEditing)BOOLediting
u -(void)setEditing:(BOOL)editinganimated:(BOOL)animated
刪除 UITableView 的行
l 首先要開啓編輯模式
l 實現 UITableViewDataSource 的以下方法:
- (void) tableView :(UITableView *)tableView commitEditingStyle :(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath :(NSIndexPath *)indexPath {
// 若是 UITableView 提 交的是刪除指令
if (editingStyle == UITableViewCellEditingStyleDelete) {
// 刪除真實數據
// [self.data removeObjectAtIndex:indexPath.row];
// 刪除 UITableView 中的某一行 ( 帶動畫效果 )
[tableView deleteRowsAtIndexPaths:[NSArray
arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationLeft];
// 若是不考慮動畫效果,也能夠直接 [tableView reload]; }
}
移動 UITableView 的行
l 首先要開啓編輯模式
l 實現 UITableViewDataSource 的以下方法 ( 若是沒有實現此方法,將沒法換行 )
- (void) tableView :(UITableView *)tableView moveRowAtIndexPath :(NSIndexPath *)sourceIndexPath toIndexPath :(NSIndexPath
*)destinationIndexPath {
int from = sourceIndexPath.row; int to = destinationIndexPath.row; if (from == to) return;
// 交換數據
// [self.data exchangeObjectAtIndex:from
withObjectAtIndex:to];
}
選中 UITableView 的行
l 當某行被選中時會調用此方法 (UITableViewDelegate 的方法 )
- (void) tableView :(UITableView *)tableView didSelectRowAtIndexPath :(NSIndexPath *)indexPath {
// 取消選中某一行 , 讓被選中行的高亮顏色消失 ( 帶動畫效果 ) [tableView deselectRowAtIndexPath:indexPath
animated:YES];
}
1 用一個 xib 文件來 表 述 UITableViewCell 的內容 在這設置字符串標識,以便重用
2 經過代碼往 UITableViewCell 的 contentView 中添加子視圖,在 初始化方法 ( 好比 init 、 initWithStyle:reuseIdentifier: ) 中添加子控件,在 layoutSubviews 方法中分配子控件的位置和大小
UITableView 的編輯模式
l UITableView 有個 editing 屬性,設置爲 YES 時,能夠進入編輯模式。在編 輯模式下,能夠管理表格中的行,好比改變行的排列順序、增長行、刪除行 ,但不能修改行的內容
l 多種方式開啓編輯模式
u @property(nonatomic,getter=isEditing)BOOLediting
u -(void)setEditing:(BOOL)editinganimated:(BOOL)animated
刪除 UITableView 的行
l 首先要開啓編輯模式
l 實現 UITableViewDataSource 的以下方法:
- (void) tableView :(UITableView *)tableView commitEditingStyle :(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath :(NSIndexPath *)indexPath {
// 若是 UITableView 提 交的是刪除指令
if (editingStyle == UITableViewCellEditingStyleDelete) {
// 刪除真實數據
// [self.data removeObjectAtIndex:indexPath.row];
// 刪除 UITableView 中的某一行 ( 帶動畫效果 )
[tableView deleteRowsAtIndexPaths:[NSArray
arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationLeft];
// 若是不考慮動畫效果,也能夠直接 [tableView reload]; }
}
移動 UITableView 的行
l 首先要開啓編輯模式
l 實現 UITableViewDataSource 的以下方法 ( 若是沒有實現此方法,將沒法換行 )
- (void) tableView :(UITableView *)tableView moveRowAtIndexPath :(NSIndexPath *)sourceIndexPath toIndexPath :(NSIndexPath
*)destinationIndexPath {
int from = sourceIndexPath.row; int to = destinationIndexPath.row; if (from == to) return;
// 交換數據
// [self.data exchangeObjectAtIndex:from
withObjectAtIndex:to];
}
選中 UITableView 的行
l 當某行被選中時會調用此方法 (UITableViewDelegate 的方法 )
- (void) tableView :(UITableView *)tableView didSelectRowAtIndexPath :(NSIndexPath *)indexPath {
// 取消選中某一行 , 讓被選中行的高亮顏色消失 ( 帶動畫效果 ) [tableView deselectRowAtIndexPath:indexPath
animated:YES];
}
UITableView
經常使用方法
l - (id) initWithFrame :(CGRect)frame style :(UITableViewStyle)style 初始化一個 UITableView ,而且設置表格樣式
l - (void) reloadData 從新訪問數據源,刷新界面
l - (NSInteger) numberOfSections 分區的個數
l - (NSInteger) numberOfRowsInSection :(NSInteger)section
第 section 分區的行數
l - (UITableViewCell *) cellForRowAtIndexPath :(NSIndexPath *)indexPath
經過 indexPath 找到對應的 UITableViewCell 對象
l - (void) setEditing :(BOOL)editing animated :(BOOL)animated
是否要開啓編輯模式
l - (void) deselectRowAtIndexPath :(NSIndexPath *)indexPath animated :(BOOL)animated
取消選中某一行 , 讓被選中行的高亮顏色消失 ( 帶動畫效果 )
l - (id) initWithFrame :(CGRect)frame style :(UITableViewStyle)style 初始化一個 UITableView ,而且設置表格樣式
l - (void) reloadData 從新訪問數據源,刷新界面
l - (NSInteger) numberOfSections 分區的個數
l - (NSInteger) numberOfRowsInSection :(NSInteger)section
第 section 分區的行數
l - (UITableViewCell *) cellForRowAtIndexPath :(NSIndexPath *)indexPath
經過 indexPath 找到對應的 UITableViewCell 對象
l - (void) setEditing :(BOOL)editing animated :(BOOL)animated
是否要開啓編輯模式
l - (void) deselectRowAtIndexPath :(NSIndexPath *)indexPath animated :(BOOL)animated
取消選中某一行 , 讓被選中行的高亮顏色消失 ( 帶動畫效果 )
UITableView 經常使用方法
l - (id) dequeueReusableCellWithIdentifier :(NSString *)identifier
經過 identifier 在 ( 緩存 ) 池中找到對應的 UITableViewCell 對象
l - (void) deleteRowsAtIndexPaths :(NSArray *)indexPaths withRowAnimation :(UITableViewRowAnimation)animation
移除 indexPaths 範圍內的全部行
l @property(nonatomic,readonly) UITableViewStyle style 表格樣式
l @property(nonatomic,assign) id dataSource 數據源
l @property(nonatomic,assign) id delegate 代理
l @property(nonatomic,getter= isEditing ) BOOL editing 是否爲編輯模式
l @property(nonatomic) UITableViewCellSeparatorStyle separatorStyle 設置分隔線的樣式
l @property(nonatomic,retain) UIColor *separatorColor 設置分隔線的顏色
UITableView 經常使用方法
l @property(nonatomic,retain) UIView *tableHeaderView 表頭顯示的視圖
l @property(nonatomic,retain) UIView *tableFooterView 表尾顯示的視圖
l @property(nonatomic) BOOL allowsSelection
是否容許選中行
l @property(nonatomic) BOOL allowsSelectionDuringEditing 是否容許在編輯模式下選中行
l @property(nonatomic) BOOL allowsMultipleSelection 是否容許選中多行
l @property(nonatomic) BOOL allowsMultipleSelectionDuringEditing 是否容許在編輯模式下選中多行
UITableViewController
l 是 UIViewController 的子類, UITableViewController 默認扮演了 3 種角色 : 視 圖控制器、 UITableView 的數據源和代理
l UITableViewController 的 view 是個 UITablView, 由 UITableViewController 負責設置和顯示這個對象。 UITableViewController 對象被建立後,會將這 個 UITableView 對象的 dataSource 和 delegate 指向 UITableViewController 本身
//轉載請註明出處--本文永久連接:http://www.cnblogs.com/ChenYilong/p/3496969.html動畫
本文對應pdf文檔下載連接,猛戳->:https://www.evernote.com/shard/s227/sh/fbffb63f-55ba-441f-945e-5ba511812d0d/a0e328ca59db246f3926b92f52bf6d38ui
UITableView (PDF) |