UITableViewDataSource 協議中常用方法
1.設置右邊索引值
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
2.設置分組標識
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
3.設置分組個數
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
4.設置行數
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
5.創建cell(使用重用機制,如下例)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
1.創建重用標識符
static NSString *identifier = @"reuse”;
2.去重用隊列中根據標識符取可重用的cell
AddressBookCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
3.判斷是否獲取到可重用的cell(最後要空間釋放)
if (!cell) {
cell = [[[AddressBookCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];
}
return cell;
}
6.設置tableView的每一行的編輯狀態(YES,可編輯)
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES
}
7.edit按鈕的點擊事件(當點擊edit按鈕時觸發)
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
8.當提交編輯操作時觸發
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
9.設置tableView每一行是否允許移動(YES,可移動)
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES
}
10.提交移動操作之後觸發
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
UITableViewDelegate協議中常用方法
1.設置行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 55;
}
2.選中cell時觸發
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
3.設置tableViewCell的編輯樣式(插入/刪除)
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
4.設置當點擊編輯按鈕時上面顯示的文字,如顯示刪除
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(3_0) { return @"刪除"; }
5.設置cell移動的位置
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath