码迷,mamicode.com
首页 > 移动开发 > 详细

IOS tableView 滑动删除与排序功能

时间:2015-04-30 20:01:59      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

//
//  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

 

IOS tableView 滑动删除与排序功能

标签:

原文地址:http://www.cnblogs.com/wangjuneng/p/4469669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!