UITableView 表視圖編輯,uitableview視圖
UITableViewController(表視圖控制器)繼承自UIViewController,內建一個tableViewself.view不是UIView而是UITableViewdatasource和delegate你預設都是self(UITableViewController)開發過程中只需建立UITableViewController子類 tableView編輯 tableView編輯:cell的添加、刪除使用的情境:刪除一個下載好的視頻,刪除連絡人。插入一條新的聊天記錄等 編輯的步驟 1、self讓tableView處於編輯狀態
//editButtonItem對應的相應方法內部會根據點擊按鈕的狀態通過setEditing:animtated:方法來控製表視圖是否進入編輯狀態 self.navigationItem.rightBarButtonItem = self.editButtonItem;2、指定tableView那些行可以編輯
3、指定tableView編輯樣式(添加、刪除)
4、編輯完成(先操作資料源,在修改UI)
// Override to support editing the table view.- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { // Delete the row from the data source// 1、應當先刪除對應行的資料// 2、再將對應行的儲存格從表視圖中刪除 [self.datasource removeObjectAtIndex:indexPath.row]; [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle]; } else if (editingStyle == UITableViewCellEditingStyleInsert) { // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view// 1、現在數組中插入對應的對象// 2、建立對應對象的indexPath// 3、根據indexPath在表視圖中的位置插入對應行 [self.datasource addObject:@"新插入的資料"]; NSIndexPath *insertPath = [NSIndexPath indexPathForRow:self.datasource.count - 1 inSection:0]; [tableView insertRowsAtIndexPaths:@[insertPath] withRowAnimation:UITableViewRowAnimationMiddle]; } }
當表格被拖拽後會相應此方法,
當表格處於編輯狀態時,可以通過以下方法設定相應的表格是否與許被編輯