UITableViewDelegate的方法
設置
編輯模式
中得cell的編輯樣式
(刪除或插入)
- (UITableViewCellEditingStyle)
tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath;
UITableViewDataSource的方法
設置該單元格可否被編輯
- (BOOL)tableView:(UITableView *)tableView
canEditRowAtIndexPath:(NSIndexPath *)indexPath;
設置該單元格可否被移動
- (BOOL)
tableView:(UITableView *)tableView
canMoveRowAtIndexPath:(NSIndexPath *)indexPath;
對單元格進行編輯
時會調用此方法
刪除單元格:1)先
刪除數據源 2)接着
刪除單元格 3)刷新單元格
插入單元格:1)先
插入數據源 2)接着
插入單元格 3)刷新單元格
- (void)
tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
//判斷編輯樣式(刪除或插入)
if (editingStyle==
UITableViewCellEditingStyleDelete)
{
//必需要先刪除數據
源
NSMutableArray *arr=[self.dataSourceArray objectAtIndex:indexPath.section];數組
[arr removeObjectAtIndex:indexPath.row];spa
//接着刪除單元格
(參數是數組,可能刪除多行)
[tableView
deleteRowsAtIndexPaths:[
NSArray
arrayWithObject
:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
//刪除完後要刷新tableView
[tableView
reloadData];
}
else if (editingStyle==UITableViewCellEditingStyleInsert)
//插入模式
{
//下面根據實際狀況
CSFriends *friend=[[CSFriends alloc]init];
friend.imageName=[NSString stringWithFormat:@"%d.jpg",2];
friend.name=@"超級布羅利";
friend.skill=@"超級賽亞人";
//必需要先插入數據源
NSMutableArray *arr=[
self.
dataSourceArray
objectAtIndex
:indexPath.
section
];
[arr
insertObject:friend
atIndex:indexPath.row];
//接着插入單元格
(參數是數組,可能插入多行)
[tableView
insertRowsAtIndexPaths:[
NSArray
arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationMiddle];
//插入後要刷新tableView
[tableView reloadData];
}
}
對單元格進行移動時會調用此方法
移動單元格:1)先將要移動的數據從
數據源的原位置中
刪除 2)接着再講數據
插入數據源的新位置 3)刷新單元格
-(void)
tableView:(UITableView *)tableView
moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath
toIndexPath:(NSIndexPath *)destinationIndexPath
{
//先找到要移動的數據(sourceIndexPath是移動前的位置)
NSMutableArray *array=
self.
dataSourceArray
[
sourceIndexPath
.
section
];
CSFriends
*friend= array[
sourceIndexPath
.row];
//
將該數據從數據源刪除
[array
removeObject:friend];
//再找到新位置的數據源
(destinationIndexPath是移動後的位置)
NSMutableArray *array=
self.
dataSourceArray
[
destinationIndexPath
.
section
];
//將數據先添加入數據源的新位置
[array
insertObject:friend
atIndex:
destinationIndexPath.
row];
//最後刷新單元格
[tableView
reloadData];
}