91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

UITableViewCell的標記、移動、刪除、插入

發布時間:2020-06-11 01:52:37 來源:網絡 閱讀:616 作者:新風作浪 欄目:開發技術
        這篇文章是建立在 

代碼實現 UITableView與UITableViewCell基礎上進行修改,用不上的代碼我注釋調,部分不明白可以看看上篇博客;實現的功能是對UITableViewCell的標記、移動、刪除、插入;


1.標記:指的是選中某一行,在這一行后面有個符號,常見的是對勾形式
通過修改cell的accessoryType屬性來實現,首先,在ViewDidLoad中[tableView setEditing:NO animated:YES];表示把單元格可編輯狀態這只為NO
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {     UITableViewCell *cellView = [tableView cellForRowAtIndexPath:indexPath];     if (cellView.accessoryType == UITableViewCellAccessoryNone) {         cellView.accessoryType=UITableViewCellAccessoryCheckmark;     }     else {         cellView.accessoryType = UITableViewCellAccessoryNone;         [tableView deselectRowAtIndexPath:indexPath animated:YES];     } }

 當我們選中單元格的時候,調用此函數,首先是indexPath檢測選中了哪一行,if判斷當前單元格是否被標記,也就是當前單元格風格,是否為UITableViewCellAccessoryCheckmark風格,如果是,則換成UITableViewCellAccessoryNone(不被標記風格)風格,以下accessoryType四個風格屬性
 UITableViewCellAccessoryCheckmark                 UITableViewCellAccessoryDetailDisclosureButton
  UITableViewCell的標記、移動、刪除、插入      UITableViewCell的標記、移動、刪除、插入

UITableViewCellAccessoryDisclosureIndicator   UITableViewCellAccessoryNone
 UITableViewCell的標記、移動、刪除、插入    UITableViewCell的標記、移動、刪除、插入

2.移動  
實現移動單元格就需要把單元格的編輯屬性設置為YES,[tableView setEditing:YES animated:YES];
//返回YES,表示支持單元格的移動 -(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {     return YES; }
//單元格返回的編輯風格,包括刪除 添加 和 默認  和不可編輯三種風格 -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {     return UITableViewCellEditingStyleInsert; }
三種風格的分別是

UITableViewCellEditingStyleDelete                                                UITableViewCellEditingStyleInsert

UITableViewCell的標記、移動、刪除、插入  UITableViewCell的標記、移動、刪除、插入


UITableViewCellEditingStyleNone

UITableViewCell的標記、移動、刪除、插入
實現移動的方法
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { //    需要的移動行     NSInteger fromRow = [sourceIndexPath row]; //    獲取移動某處的位置     NSInteger toRow = [destinationIndexPath row]; //    從數組中讀取需要移動行的數據     id object = [self.listData objectAtIndex:fromRow]; //    在數組中移動需要移動的行的數據     [self.listData removeObjectAtIndex:fromRow]; //    把需要移動的單元格數據在數組中,移動到想要移動的數據前面     [self.listData insertObject:object atIndex:toRow];   }

單元格的移動是選中單元格行后面三條橫線才可以實現移動的

UITableViewCell的標記、移動、刪除、插入  UITableViewCell的標記、移動、刪除、插入
3.刪除
首先是判斷(UITableViewCellEditingStyle)editingStyle,所以
//單元格返回的編輯風格,包括刪除 添加 和 默認  和不可編輯三種風格 -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {     return UITableViewCellEditingStyleDelete; }

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {     if (editingStyle==UITableViewCellEditingStyleDelete) { //        獲取選中刪除行索引值         NSInteger row = [indexPath row]; //        通過獲取的索引值刪除數組中的值         [self.listData removeObjectAtIndex:row]; //        刪除單元格的某一行時,在用動畫效果實現刪除過程         [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];     } }

刪除了張四 效果圖:
UITableViewCell的標記、移動、刪除、插入  UITableViewCell的標記、移動、刪除、插入UITableViewCell的標記、移動、刪除、插入  UITableViewCell的標記、移動、刪除、插入
4.添加
實現方法和刪除方法相同,首先還是返回單元格編輯風格
//單元格返回的編輯風格,包括刪除 添加 和 默認  和不可編輯三種風格 -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {     return UITableViewCellEditingStyleInsert; }

為了顯示效果明顯,在.h文件中聲明一個變量i
#import <UIKit/UIKit.h>  @interface STViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> {  NSInteger i; } @property(strong,nonatomic) NSMutableArray *listData; @property(strong,nonatomic)UITableView *tableView; @property(strong,nonatomic)UITableViewCell *tableViewCell;  @end

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {     if (editingStyle==UITableViewCellEditingStyleDelete) { //        獲取選中刪除行索引值         NSInteger row = [indexPath row]; //        通過獲取的索引值刪除數組中的值         [self.listData removeObjectAtIndex:row]; //        刪除單元格的某一行時,在用動畫效果實現刪除過程         [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];     }     if(editingStyle==UITableViewCellEditingStyleInsert)     {                 i=i+1;         NSInteger row = [indexPath row];         NSArray *insertIndexPath = [NSArray arrayWithObjects:indexPath, nil];         NSString *mes = [NSString stringWithFormat:@"添加的第%d行",i]; //        添加單元行的設置的標題         [self.listData insertObject:mes atIndex:row];         [tableView insertRowsAtIndexPaths:insertIndexPath withRowAnimation:UITableViewRowAnimationRight];     } }

運行效果圖:
UITableViewCell的標記、移動、刪除、插入  UITableViewCell的標記、移動、刪除、插入 UITableViewCell的標記、移動、刪除、插入  UITableViewCell的標記、移動、刪除、插入

在刪除和添加單元格的用到UITableViewRowAnimation動畫效果,它還有其他幾種效果,在此不做測試

UITableViewRowAnimationAutomatic      UITableViewRowAnimationTop 

UITableViewRowAnimationBottom          UITableViewRowAnimationLeft

UITableViewRowAnimationRight             UITableViewRowAnimationMiddle

UITableViewRowAnimationFade              UITableViewRowAnimationNone




附上源代碼:http://download.csdn.net/detail/duxinfeng2010/4416925




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏边| 尼木县| 永兴县| 温宿县| 循化| 宜川县| 九龙县| 盘锦市| 吉隆县| 稷山县| 芜湖县| 新乐市| 临安市| 池州市| 彭山县| 车致| 临海市| 东山县| 朝阳市| 额济纳旗| 临漳县| 温泉县| 惠水县| 邻水| 临沭县| 连城县| 靖宇县| 高碑店市| 亚东县| 自贡市| 四平市| 黄龙县| 阳东县| 梅河口市| 弥勒县| 来安县| 石泉县| 安仁县| 同心县| 承德县| 桑植县|