国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS開發日記1-tableview編輯

2019-11-14 18:31:55
字體:
來源:轉載
供稿:網友

今天博主有一個tableview編輯的需求,遇到了一些困難點,在此和大家分享,能夠共同進步.

tableview的編輯是通過[self.tableview setEditing: BOOL1 animotion: BOOL2];進入的,如果需要進入編輯模式,則調用方法,將BOOL1改為YES.如果要退出編輯模式,則調用方法,將BOOL1改為NO.BOOL2為是否使用動畫.

如果你想將編輯這個button由文字改為圖片,想通過setBackGroudImage這個方法替換文字,你會發現圖片會因為無法設置frame而產生拉伸,效果不理想.解決方法:你可以自定義rightBarButtonItem,重寫代理方法.下面將tableview的編輯的代碼貼出來,與大家分享

- (void)viewDidLoad {

    [super viewDidLoad];

 

    //編輯按鈕

    self.navigationItem.rightBarButtonItem = self.editButtonItem;

    self.navigationItem.rightBarButtonItem.title = @"編輯";

    self.navigationItem.rightBarButtonItem.tintColor=[UIColor blackColor];

}

#PRagma mark---------tableView的編輯(刪除,插入)

//點擊編輯按鈕

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {

    [super setEditing:editing animated:animated];

    // Don't show the Back button while editing.

//    [self.navigationItem setHidesBackButton:editing animated:YES];

    if (editing) {

        self.navigationItem.rightBarButtonItem.title = @"完成";

        NSLog(@"abc");

    }else {//點擊完成按鈕

        self.navigationItem.rightBarButtonItem.title = @"編輯";

        NSLog(@"123");

    }

    [_customView.tableView setEditing:editing animated:YES];

}

//2.設置定制分區(section)中的行(row)是否可以被編輯

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath

{

//    if (indexPath.section==0) {

//        return NO;

//    }

    return YES;

}

//3.設置指定的分區(section)的行(row)編輯的樣式(添加,刪除)

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

{

    if (indexPath.section==1) {

        return UITableViewCellEditingStyleInsert;

    }

    return UITableViewCellEditingStyleDelete;

}

//4.編輯完成(先操作數據源,再修改UI)

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

{

    if (editingStyle==UITableViewCellEditingStyleDelete) {

        NSLog(@"刪除");

        //同步更新beginUpdates 和 endUpdates 之間修改的UI和數據

        [_customView.tableView beginUpdates];

        

        //1.刪除數據

        NSString *key=_allDataDic.allKeys[indexPath.section];

        NSMutableArray *array=_allDataDic[key];

        [array removeObjectAtIndex:indexPath.row];

        //2.刪除UI

        //刪除行

        [_customView.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];

        if (array.count==0) {

            

            //刪除區頭上的數據(刪除key對應的小數組)

            NSString *key=_allDataDic.allKeys[indexPath.section];

            [_allDataDic removeObjectForKey:key];

 

            //當某個分區中只剩一個cell的時候(或者小數組中只剩一個數據的時候),刪除時,也要把區頭刪除掉

            NSIndexSet *indexSet=[NSIndexSet indexSetWithIndex:indexPath.section];

            [_customView.tableView deleteSections:indexSet withRowAnimation:UITableViewRowAnimationLeft];

        }

        

        [_customView.tableView endUpdates];

        

    }else if (editingStyle==UITableViewCellEditingStyleInsert)

    {

        NSLog(@"插入");

        //1.插入數據

        NSString *key=_allDataDic.allKeys[indexPath.section];

        NSMutableArray *array=_allDataDic[key];

        [array insertObject:@"昌平" atIndex:indexPath.row];

        //2.插入UI(cell)        

      //  NSIndexPath *indexPath1=[NSIndexPath indexPathForRow:0 inSection:indexPath.section];//保證每次插入數據都在第一行

        [_customView.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];        

    }

}

 

http://www.jianshu.com/p/7c3d72fd9616?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇仁县| 普安县| 英山县| 桃源县| 沙洋县| 金门县| 晴隆县| 利津县| 双流县| 上饶县| 县级市| 鸡泽县| 简阳市| 永顺县| 班玛县| 铜鼓县| 炉霍县| 长白| 梨树县| 衡水市| 筠连县| 道孚县| 平凉市| 南宁市| 汝南县| 宣威市| 东至县| 双流县| 阳城县| 吉林市| 富宁县| 安宁市| 长子县| 获嘉县| 田林县| 富顺县| 通城县| 西安市| 来宾市| 顺平县| 犍为县|