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

首頁 > 系統 > iOS > 正文

iOS修行---TableView進階1

2019-11-09 18:40:58
字體:
來源:轉載
供稿:網友

/*注:以下討論框架自帶,自定義的以后記錄*/

一.編輯狀態刪除一行

1.需要編輯按鈕,進入編輯狀態

self.navigationItem.rightBarButtonItem = self.editButtonItem;

  這里需要說明一點,這個顯示在導航條上的按鈕點擊會改變名字,如Edit/Done(或者中文),這個title可以自己設定,另外設置vc的editing屬性也會改變其title,也就說這個按鈕的title和tableVIew所處的狀態是關聯的。

2.當點擊 編輯/完成 按鈕時

-(void)setEditing:(BOOL)editing animated:(BOOL)animated{    [super setEditing:editing animated:animated];    [self.navigationItem setHidesBackButton:YES];    if(editing){        [self.tableView setEditing:YES animated:YES];    }else{        [self.tableView setEditing:NO animated:YES];        [self.navigationItem setHidesBackButton:NO];    }}3.delegate返回編輯樣式
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{    return UITableViewCellEditingStyleDelete;}4.dataSource執行刪除--編輯處理方法
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{    if(editingStyle == UITableViewCellEditingStyleDelete){      [self.dataArray removeObjectAtIndex:indexPath.row];      [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];    }}二.滑動刪除一行

1.dataSource返回允許編輯

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{    return YES;}2.實現編輯處理方法
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{    if(editingStyle == UITableViewCellEditingStyleDelete){                [self.dataArray removeObjectAtIndex:indexPath.row];        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];    }}3.滑動手勢開始與結束代理方法delegate

-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath{    self.editing = YES;    [self.navigationItem setHidesBackButton:YES];}-(void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath{    self.editing = NO;    [self.navigationItem setHidesBackButton:NO];}這里說明一下,設置editing屬性,是為了讓滑動刪除和導航條Edit按鈕不沖突,并且在滑動開始可以隱藏導航條返回按鈕

三.多選刪除

1.設置tableView允許多行編輯

self.tableView.allowsMultipleSelectionDuringEditing =YES;2.設置cell被選擇樣式

cell.selectionStyle = UITableViewCellSelectionStyleDefault; 如果認為系統選中狀態難看,可以自定義選中狀態背景圖,生成一個UIView,定義好,然后賦值給cell.selectedBackaroundView;

3.用代理方法記錄cell選中情況

//選中某一行-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    if(self.editing){        [self.mulDeleteIndexSet addIndex:indexPath.row];    }}//取消選擇中一行-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{    if(self.editing){        [self.mulDeleteIndexSet removeIndex:indexPath.row];    }}  這里我們用NSMutableIndexSet對象記錄選中情況,也可以用array,dic等,視具體情況而定

4.在某一方法中刪除數據,并重繪tableView,如在界面中設置一個刪除按鈕,或者什么

        [self.dataArray removeObjectsAtIndexes:self.mulDeleteIndexSet];        [self.mulDeleteIndexSet removeAllIndexes];        [self.tableView reloadData];


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛南县| 鸡东县| 砀山县| 达州市| 白城市| 三江| 萨嘎县| 康马县| 黎城县| 墨脱县| 新平| 铜陵市| 融水| 长白| 梨树县| 汉川市| 江孜县| 威信县| 兴安县| 红原县| 彭山县| 广汉市| 彭州市| 扎兰屯市| 绥中县| 桐庐县| 西和县| 苍南县| 青阳县| 南宁市| 井陉县| 宁陵县| 县级市| 盐津县| 清远市| 新乡县| 兴安盟| 舒兰市| 峨边| 临朐县| 栾城县|