UITableView 表視圖編輯

UITableViewController(表視圖控制器)繼承自UIViewController,自帶一個tableView
self.view不是UIView而是UITableView
datasource和delegate你默認都是self(UITableViewController)
開發過程當中只需創建UITableViewController子類
 
tableView編輯
 
tableView編輯:cell的添加、刪除
使用的場景:刪除一個下載好的視頻,刪除聯繫人。
插入一條新的聊天記錄等
 
編輯的步驟
 
一、self讓tableView處於編輯狀態
 

    //editButtonItem對應的相應方法內部會根據點擊按鈕的狀態經過setEditing:animtated:方法來控制表視圖是否進入編輯狀態
     self.navigationItem.rightBarButtonItem = self.editButtonItem;
二、指定tableView那些行能夠編輯

 

 
三、指定tableView編輯樣式(添加、刪除)

 
四、編輯完成(先操做數據源,在修改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
//        一、應當先刪除對應行的數據
//        二、再將對應行的單元格從表視圖中刪除
        [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
//        一、如今數組中插入對應的對象
//        二、建立對應對象的indexPath
//        三、根據indexPath在表視圖中的位置插入對應行
        [self.datasource addObject:@"新插入的數據"];
        NSIndexPath *insertPath = [NSIndexPath indexPathForRow:self.datasource.count - 1 inSection:0];
        [tableView insertRowsAtIndexPaths:@[insertPath] withRowAnimation:UITableViewRowAnimationMiddle];
    }   
}

當表格被拖拽後會相應此方法,數組

 

 

 

當表格處於編輯狀態時,能夠經過如下方法設置相應的表格是否與許被編輯app

 

相關文章
相關標籤/搜索