首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

IOS之表视图单元格剔除、移动及插入

2014-01-22 
IOS之表视图单元格删除、移动及插入?1.实现单元格的删除,实现效果如下??- (void)viewDidLoad{[super viewDi

IOS之表视图单元格删除、移动及插入

?

1.实现单元格的删除,实现效果如下


IOS之表视图单元格剔除、移动及插入
?
?

- (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.移动单元格


IOS之表视图单元格剔除、移动及插入
?

//完成移动的触发事件,不添加该方法不实现移动功能- (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按钮

- (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类

#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

?
IOS之表视图单元格剔除、移动及插入
?

?

热点排行