麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲骚综合 | 久草在线视频网 | 粉嫩粉嫩一区二区三区在线播放 | 一级成人在线 | 国产免费视频一区二区裸体 | hd性videos意大利复古 | 法国极品成人h版 | 免费观看一级 | 在线91观看 | 麻豆一二区 | 午夜视频在线观看免费视频 | 成人福利视频网站 | 欧美性生活xxxxx | 欧美日韩成人一区二区 | 国产精品午夜一区 | 91成人免费看 | 免费一级特黄毛片 | 97色在线观看免费视频 | 国产精品久久久久影院老司 | 久久久日韩av免费观看下载 | 在线成人免费网站 | 亚洲天堂一级片 | 亚洲欧美国产视频 | 四季久久免费一区二区三区四区 | 午夜久久电影 | 日本成人在线免费 | 手机av免费电影 | 精品三区视频 | 高清在线国产 | 午夜视频中文字幕 | 亚洲精品aa | 在线a毛片 | 人禽l交免费视频 | 日韩毛片在线看 | 日日草日日干 | 性爱视频免费 | 91色综合综合热五月激情 | 国产精品久久久久久影院8一贰佰 | 成人 在线 | 国产精品久久久久久久久久iiiii | 视频在线亚洲 |