IOS tableView 滑动删除与排序功能

//

//  ViewController.m

//  0429

//

//  Created by apple on 15/4/29.

//  Copyright (c) 2015年 gense. All rights reserved.

//



#import "ViewController.h"

#import "ProductCategory.h"



@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>

{

    NSMutableArray * productCategoryList ;

}

@end



@implementation ViewController



- (void)viewDidLoad {

    [super viewDidLoad];

    

 

    //从配置文件中初始化商品类型信息

   [self initProudctCategory];

    

}



#pragma mark  从配置文件中初始化商品类型信息

- (void) initProudctCategory

{

    //读取参数文件

    NSString * paramPath = [[NSBundle mainBundle] pathForResource:@"shops.plist" ofType:nil];

    NSArray * dataArr = [NSArray arrayWithContentsOfFile:paramPath];



    productCategoryList = [NSMutableArray arrayWithCapacity:10];

    

    //遍历plist文件

    [dataArr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

        [productCategoryList addObject: [ProductCategory productCategoryWithName:obj[@"name"] andDesc:obj[@"desc"] icon:obj[@"icon"]]];

    }];

    

}





#pragma mark tableviewDeleage  总共有多少行记录

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

    return [productCategoryList count];

}



#pragma mark 实例化每行cell

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    NSString * cellIdentified  = @"productCategoryTableViewCell";

    

    //从缓存中加载可用的cell

    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellIdentified];

    

    if(cell  == nil) //从缓存在未拿到合适的cell

    {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentified];

        

    }

    

    //设置cell中的属性

    cell.textLabel.text = [productCategoryList[indexPath.row] name];

    cell.detailTextLabel.text =  [productCategoryList[indexPath.row] desc];

    

    cell.imageView.image =  [UIImage imageNamed:[productCategoryList[indexPath.row] icon]];

    

    if([productCategoryList[indexPath.row] isSelected])

    {

        [cell setAccessoryType:UITableViewCellAccessoryCheckmark];

    }

    else{

        [cell setAccessoryType:UITableViewCellAccessoryNone];

    }

    

    return  cell;

}





#pragma mark 设置tableview每行的高度



- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

    return 50.0;

}



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

    [productCategoryList[indexPath.row] setIsSelected: ![productCategoryList[indexPath.row] isSelected ]];

    

    [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

    



}







#pragma  mark 滑动删除

- (void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

{

        if(UITableViewCellEditingStyleDelete == editingStyle)

        {

            [productCategoryList removeObjectAtIndex:indexPath.row];

            

            //[_productCategoryTV reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];

            

            [_productCategoryTV deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];

        }

}





#pragma mark 拖动排序

-(void) tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath

{

    ProductCategory * p = productCategoryList[sourceIndexPath.row];

    

    [productCategoryList removeObject:p];

    

    

    [productCategoryList insertObject:p atIndex:destinationIndexPath.row];

    

}







#pragma mark  删除选中的数据

- (IBAction)trashItemClick:(id)sender

{

//    NSMutableArray * deleteArr = [NSMutableArray arrayWithCapacity:10];

//    NSMutableArray * indexPathArr = [NSMutableArray arrayWithCapacity:10    ];

//    

//    [productCategoryList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

//        if([obj isSelected])

//        {

//            [deleteArr addObject:obj];

//            [indexPathArr addObject:[NSIndexPath indexPathForItem:idx inSection:0]];

//        }

//    }];

//    

//    [productCategoryList removeObjectsInArray:deleteArr];

//    

//    //tableview reload

//    [_productCategoryTV deleteRowsAtIndexPaths:indexPathArr withRowAnimation:UITableViewRowAnimationMiddle];

    _productCategoryTV.editing = !_productCategoryTV.isEditing;

    

}

@end

 

你可能感兴趣的:(tableview)