亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

IOS之表視圖單元格刪除、移動及插入

2019-11-14 19:41:42
字體:
來源:轉載
供稿:網友

 

1.實現單元格的刪除,實現效果如下

   

Cpp代碼 復制代碼 收藏代碼
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     //設置導航欄  
  5.      self.editButtonItem.title = @"編輯";  
  6.     self.navigation.rightBarButtonItem = self.editButtonItem;  
  7.     [self initTableViewData];  
  8.     // Do any additional setup after loading the view.  
  9. }  
  10.   
  11. - (void)didReceiveMemoryWarning  
  12. {  
  13.     [super didReceiveMemoryWarning];  
  14.     // Dispose of any resources that can be recreated.  
  15. }  
  16.   
  17. -(void)initTableViewData{  
  18.     NSBundle *bundle = [NSBundle mainBundle];  
  19.     NSString *plistPath = [bundle pathForResource:@"user_head" ofType:@"plist"];  
  20.     dataArr = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];  
  21. }  
  22.   
  23. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  
  24. {  
  25.     return [dataArr count];  
  26. }  
  27.   
  28. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
  29. {  
  30.     static NSString *CellIdentifier = @"tableCell";  
  31.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];  
  32.       
  33.     NSUInteger row = [indexPath row];  
  34.     NSDictionary *rowDict = [dataArr objectAtIndex:row];  
  35.     cell.textLabel.text =  [rowDict objectForKey:@"itemName"];  
  36.     NSLog(@"cell.label.text =  %@",[rowDict objectForKey:@"itemName"]);  
  37.       
  38.     NSString *imagePath = [rowDict objectForKey:@"itemImagePath"];  
  39.     cell.imageView.image = [UIImage imageNamed:imagePath];  
  40.     NSLog(@"cell.image.image  =  %@",imagePath);  
  41.       
  42.     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;  
  43.       
  44.     return cell;  
  45. }  
  46.   
  47. //選中Cell響應事件  
  48. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{  
  49.     [tableView deselectRowAtIndexPath:indexPath animated:YES];//選中后的反顯顏色即刻消失  
  50.     NSUInteger row = [indexPath row];  
  51.     NSDictionary *rowDict = [dataArr objectAtIndex:row];  
  52.     NSString *userName =  [rowDict objectForKey:@"itemName"];  
  53.     NSLog(@"userName=%@",userName);  
  54. }  
  55.   
  56. //返回編輯狀態的style  
  57. - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView  
  58.            editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath  
  59. {  
  60.     //UITableViewCellEditingStyleInsert  
  61. //    return UITableViewCellEditingStyleNone;  
  62.     return UITableViewCellEditingStyleDelete;  
  63. }  
  64. //完成編輯的觸發事件  
  65. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  
  66. forRowAtIndexPath:(NSIndexPath *)indexPath  
  67. {  
  68.     if (editingStyle == UITableViewCellEditingStyleDelete)  
  69.     {  
  70.         [dataArr removeObjectAtIndex: indexPath.row];  
  71.         //        [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]  
  72.         //                         withRowAnimation:UITableViewRowAnimationFade];  
  73.         [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]  
  74.                          withRowAnimation:UITableViewRowAnimationFade];  
  75.         [tableView reloadData];  
  76.     }   
  77. }  
  78. //UIViewController生命周期方法,用于響應視圖編輯狀態變化  
  79. - (void)setEditing:(BOOL)editing animated:(BOOL)animated {  
  80.     [super setEditing:editing animated:animated];  
  81.       
  82.     [self.tableView setEditing:editing animated:YES];  
  83.     if (self.editing) {  
  84.      self.editButtonItem.title = @"完成";  
  85.     } else {  
  86.         self.editButtonItem.title = @"編輯";  
  87.     }  
  88. }  
  89. @end  
- (void)viewDidLoad{    [super viewDidLoad];    //設置導航欄     self.editButtonItem.title = @"編輯";    self.navigation.rightBarButtonItem = self.editButtonItem;    [self initTableViewData];	// Do any additional setup after loading the view.}- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}-(void)initTableViewData{    NSBundle *bundle = [NSBundle mainBundle];    NSString *plistPath = [bundle pathForResource:@"user_head" ofType:@"plist"];    dataArr = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    return [dataArr count];}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    static NSString *CellIdentifier = @"tableCell";    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];        NSUInteger row = [indexPath row];    NSDictionary *rowDict = [dataArr objectAtIndex:row];    cell.textLabel.text =  [rowDict objectForKey:@"itemName"];    NSLog(@"cell.label.text =  %@",[rowDict objectForKey:@"itemName"]);        NSString *imagePath = [rowDict objectForKey:@"itemImagePath"];    cell.imageView.image = [UIImage imageNamed:imagePath];    NSLog(@"cell.image.image  =  %@",imagePath);        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;        return cell;}//選中Cell響應事件- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    [tableView deselectRowAtIndexPath:indexPath animated:YES];//選中后的反顯顏色即刻消失    NSUInteger row = [indexPath row];    NSDictionary *rowDict = [dataArr objectAtIndex:row];    NSString *userName =  [rowDict objectForKey:@"itemName"];    NSLog(@"userName=%@",userName);}//返回編輯狀態的style- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView           editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{    //UITableViewCellEditingStyleInsert//    return UITableViewCellEditingStyleNone;    return UITableViewCellEditingStyleDelete;}//完成編輯的觸發事件- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyleforRowAtIndexPath:(NSIndexPath *)indexPath{    if (editingStyle == UITableViewCellEditingStyleDelete)    {        [dataArr removeObjectAtIndex: indexPath.row];        //        [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]        //                         withRowAnimation:UITableViewRowAnimationFade];        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]                         withRowAnimation:UITableViewRowAnimationFade];        [tableView reloadData];    } }//UIViewController生命周期方法,用于響應視圖編輯狀態變化- (void)setEditing:(BOOL)editing animated:(BOOL)animated {    [super setEditing:editing animated:animated];        [self.tableView setEditing:editing animated:YES];    if (self.editing) {     self.editButtonItem.title = @"完成";    } else {        self.editButtonItem.title = @"編輯";    }}@end

 2.移動單元格

 

Cpp代碼 復制代碼 收藏代碼
  1. //完成移動的觸發事件,不添加該方法不實現移動功能  
  2. - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath*)sourceIndexPath  
  3.       toIndexPath:(NSIndexPath *)destinationIndexPath  
  4. {  
  5.     NSDictionary *item = [dataArr objectAtIndex:sourceIndexPath.row];  
  6.     [dataArr removeObjectAtIndex:sourceIndexPath.row];  
  7.     [dataArr insertObject:item atIndex:destinationIndexPath.row];  
  8. }  
//完成移動的觸發事件,不添加該方法不實現移動功能- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath*)sourceIndexPath      toIndexPath:(NSIndexPath *)destinationIndexPath{    NSDictionary *item = [dataArr objectAtIndex:sourceIndexPath.row];    [dataArr removeObjectAtIndex:sourceIndexPath.row];    [dataArr insertObject:item atIndex:destinationIndexPath.row];}

 3.添加單元格。下面是自定義觸發事件,即單擊左下角的add按鈕

Cpp代碼 復制代碼 收藏代碼
  1. - (IBAction)addistItem:(UIBarButtonItem *)sender {  
  2.     AppUtils *appUtils = [AppUtils alloc];  
  3.     //需要先初始化一個UIAlertView  
  4.     UIAlertView *alert = [UIAlertView alloc];  
  5.     [appUtils showInputDialogWithTitle:@"add" message:@"please input new user name:" toAlertView:alert confirmAction:(^{  
  6.         //得到輸入框  
  7.         UITextField *textField=[alert textFieldAtIndex:0];  
  8. //        不要寫成NSMutableDictionary *newItem = [NSDictionary dictionary];  
  9.         NSMutableDictionary *newItem = [NSMutableDictionary dictionary];  
  10.         [newItem setObject:textField.text forKey:@"itemName"];  
  11.         [newItem setObject:@"1.jpeg" forKey:@"itemImagePath"];  
  12.         [dataArr addObject:newItem];  
  13.         [self.tableView reloadData];  
  14.     })];  
  15. }  
- (IBAction)addistItem:(UIBarButtonItem *)sender {    AppUtils *appUtils = [AppUtils alloc];    //需要先初始化一個UIAlertView    UIAlertView *alert = [UIAlertView alloc];    [appUtils showInputDialogWithTitle:@"add" message:@"please input new user name:" toAlertView:alert confirmAction:(^{        //得到輸入框        UITextField *textField=[alert textFieldAtIndex:0];//        不要寫成NSMutableDictionary *newItem = [NSDictionary dictionary];        NSMutableDictionary *newItem = [NSMutableDictionary dictionary];        [newItem setObject:textField.text forKey:@"itemName"];        [newItem setObject:@"1.jpeg" forKey:@"itemImagePath"];        [dataArr addObject:newItem];        [self.tableView reloadData];    })];}

 4.附上·AppUtils類

Cpp代碼 復制代碼 收藏代碼
  1. #import "AppUtils.h"  
  2. #include "RIButtonItem.h"  
  3. #include "UIAlertView+Blocks.h"  
  4.   
  5. @implementation AppUtils  
  6.   
  7. //彈出警告框,并實現警告框按鈕的觸發事件  
  8. - (void)showInputDialogWithTitle:(NSString *)title message:(NSString *)message toAlertView:(UIAlertView*) alert confirmAction:(void(^)(void))action{  
  9.     RIButtonItem* cancelItem = [RIButtonItem item];  
  10.     cancelItem.label = @"No";  
  11.     cancelItem.action = ^  
  12.     {  
  13.         //為NO時的處理  
  14.         UITextField *tf=[alert textFieldAtIndex:0];  
  15.         NSLog(@"UITextField=%@",tf.text);  
  16.     };  
  17.       
  18.     RIButtonItem* confirmItem = [RIButtonItem item];  
  19.     confirmItem.label = @"Yes";  
  20. //    confirmItem.action = action;  
  21.     alert = [alert initWithTitle:title  
  22.                                                     message:message  
  23.                                            cancelButtonItem:cancelItem  
  24.                                            otherButtonItems:confirmItem, nil];  
  25.       
  26.     alert.alertViewStyle = UIAlertViewStylePlainTextInput;  
  27.       
  28.     confirmItem.action = action;  
  29.     [alert show];  
  30. }  
  31. @end  
#import "AppUtils.h"#include "RIButtonItem.h"#include "UIAlertView+Blocks.h"@implementation AppUtils//彈出警告框,并實現警告框按鈕的觸發事件- (void)showInputDialogWithTitle:(NSString *)title message:(NSString *)message toAlertView:(UIAlertView*) alert confirmAction:(void(^)(void))action{    RIButtonItem* cancelItem = [RIButtonItem item];    cancelItem.label = @"No";    cancelItem.action = ^    {        //為NO時的處理        UITextField *tf=[alert textFieldAtIndex:0];        NSLog(@"UITextField=%@",tf.text);    };        RIButtonItem* confirmItem = [RIButtonItem item];    confirmItem.label = @"Yes";//    confirmItem.action = action;    alert = [alert initWithTitle:title                                                    message:message                                           cancelButtonItem:cancelItem                                           otherButtonItems:confirmItem, nil];        alert.alertViewStyle = UIAlertViewStylePlainTextInput;        confirmItem.action = action;    [alert show];}@end

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产日韩一区二区| 国产精品久久久久久久久久小说| 欧美野外猛男的大粗鳮| 国产精品高潮视频| 欧美成人性色生活仑片| 久久福利视频网| 国产精品视频免费在线| 欧美www视频在线观看| 国产美女直播视频一区| 欧美电影免费观看| 欧美激情综合色综合啪啪五月| 91国偷自产一区二区三区的观看方式| 亚洲国产天堂久久综合| 97国产成人精品视频| 91精品在线一区| 欧美亚洲国产视频| 青青草成人在线| 国产精品久久婷婷六月丁香| 亚洲精品xxx| 欧美久久精品一级黑人c片| 黑丝美女久久久| 欧美激情第三页| 亚洲免费高清视频| 欧美在线一区二区视频| 亚洲国产女人aaa毛片在线| 亚洲欧美日韩图片| 91精品国产综合久久香蕉| 在线精品国产欧美| 久久精品视频亚洲| 91亚洲一区精品| 国产97在线|日韩| 自拍偷拍亚洲精品| 91丨九色丨国产在线| 日韩一中文字幕| 91久久精品国产91久久性色| 欧美xxxx做受欧美| 国产精品久在线观看| 亚洲精品福利视频| 日韩精品视频在线观看免费| www.日韩av.com| 亚洲成人精品久久| 91av在线播放视频| 日韩综合中文字幕| 国内揄拍国内精品少妇国语| 色哟哟亚洲精品一区二区| 亚洲激情 国产| 久久久免费av| 亚洲免费av片| 91午夜理伦私人影院| 精品视频久久久久久久| 国产成人精品在线播放| 日韩在线观看高清| 亚州av一区二区| 成人激情春色网| 国产精品久久久久久久久久尿| 欧美激情2020午夜免费观看| 亚洲女性裸体视频| 亚洲综合成人婷婷小说| 欧美性猛交xxxx免费看久久久| 亚洲人成自拍网站| 在线观看欧美日韩国产| 最近中文字幕2019免费| 亚洲欧美国产另类| 97香蕉超级碰碰久久免费的优势| 欧美成人在线网站| 欧美日韩福利电影| 亚洲欧美日韩区| 亚洲精品视频免费| 亚洲jizzjizz日本少妇| 97视频免费观看| 日韩中文字幕国产| 久久全球大尺度高清视频| 亚洲人成在线免费观看| 欧美黑人一区二区三区| 精品国产91久久久久久老师| 日韩精品视频三区| 亚洲人精选亚洲人成在线| 国产一区二区三区免费视频| 欧美精品免费在线| 久久国产精品偷| 亚洲成人动漫在线播放| 亚洲一区二区福利| 国产精品国产三级国产aⅴ浪潮| 性欧美视频videos6一9| 伊是香蕉大人久久| 91久久夜色精品国产网站| 中文欧美在线视频| 疯狂欧美牲乱大交777| 国内免费久久久久久久久久久| 国产精品成人免费视频| 亚洲国产成人精品久久久国产成人一区| 精品欧美aⅴ在线网站| 久久99久久久久久久噜噜| 国产精品久久婷婷六月丁香| 精品一区二区三区四区在线| 国产欧美日韩专区发布| 91精品综合久久久久久五月天| 中文字幕日韩av综合精品| 国产69精品久久久久9999| 亚洲国产成人精品久久久国产成人一区| 久久精品国产亚洲一区二区| 久久最新资源网| 欧美黑人性生活视频| 亚洲国产精品久久久久秋霞不卡| 这里只有精品视频| 欧美极品少妇xxxxⅹ裸体艺术| 高清欧美一区二区三区| 亚洲欧美制服另类日韩| 成人免费黄色网| 亚洲va欧美va国产综合久久| 亚洲在线免费看| 国产一区二区三区日韩欧美| 国产精品九九久久久久久久| 亚洲另类图片色| 久久影院免费观看| 揄拍成人国产精品视频| 国产精品直播网红| 亚洲国产小视频在线观看| 日本亚洲欧洲色α| 午夜精品久久久久久久男人的天堂| 欧美激情精品久久久久久免费印度| 热久久免费国产视频| 久久99精品国产99久久6尤物| 亚洲成av人影院在线观看| 久久精品亚洲热| 国产精品久久久久免费a∨大胸| 亚洲奶大毛多的老太婆| 欧美日产国产成人免费图片| 国产亚洲欧美一区| 亚洲成人黄色网| xxx成人少妇69| 国产精品视频免费观看www| 91啪国产在线| 欧美激情欧美激情在线五月| 91精品在线一区| 97色伦亚洲国产| 久久99亚洲热视| 国产精品视频大全| www.国产精品一二区| 成人免费福利在线| 美女999久久久精品视频| 国产欧美一区二区| 精品成人在线视频| 成人黄色在线播放| 日韩av手机在线观看| 8x海外华人永久免费日韩内陆视频| 91亚洲精品久久久久久久久久久久| 日韩视频在线一区| 国产精品大陆在线观看| 神马久久桃色视频| 欧美激情亚洲自拍| 国产精品日韩av| 这里只有视频精品| 亚洲free嫩bbb| 亚洲欧美日韩一区二区三区在线| 亚洲人成77777在线观看网| 国产精品九九久久久久久久| 韩剧1988在线观看免费完整版| 日韩av一区二区在线观看| 日韩在线免费视频| 国产亚洲欧美日韩一区二区| 亚洲男人天堂九九视频| 97色伦亚洲国产| 91亚洲va在线va天堂va国|