博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITableViewDelete 删除
阅读量:6239 次
发布时间:2019-06-22

本文共 4276 字,大约阅读时间需要 14 分钟。

#import "ViewController.h"

#import "FWZViewController.h"

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

{

    NSMutableArray *_arrayM;

    UITableView *_tableView;

}

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    //编辑模式

    self.navigationItem.leftBarButtonItem = self.editButtonItem;

    [self getData];

    [self addUITableView];

}

- (void)getData{

    NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];

    NSArray *array = [userDefault objectForKey:@"Array"];

    if (array == nil) {

        _arrayM = [NSMutableArray array];

        for (int i = 0; i < 10; i ++) {

            NSString *str = [NSString stringWithFormat:@"我是第%d行",i];

            [_arrayM addObject:str];

            

        }

 

    }else{

        _arrayM = [NSMutableArray arrayWithArray:array];

    }

    }

- (void)addUITableView{

    _tableView  = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];

    _tableView.delegate = self;

    _tableView.dataSource = self;

    [self.view addSubview:_tableView];

}

#pragma mark - UITableViewDataSource

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

    return _arrayM.count;

}

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

    NSString *resuID = @"ID";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:resuID];

    if (cell == nil) {

        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:resuID];

    }

    cell.textLabel.text = _arrayM[indexPath.row];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    return cell;

}

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

//1.进入下一页,并传值过去

    FWZViewController *fwz = [[FWZViewController alloc]init];

    fwz.cellName = _arrayM[indexPath.row];

    [self.navigationController pushViewController:fwz animated:YES];

}

#pragma mark - 点击编辑按钮触发事件

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{

    //1.重写按钮编辑点击事件  首先要调用父类方法

    [super setEditing:editing animated:YES];

    //2.打开UItableview的编辑模式

    [_tableView setEditing:editing animated:YES];

    

}   //3.允许row编辑

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{

    return YES;

}

    //4.设置编辑样式

- (UITableViewCellEditingStyle )tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{

//    UITableViewCellEditingStyleNone,

//    UITableViewCellEditingStyleDelete,

//    UITableViewCellEditingStyleInsert

    return UITableViewCellEditingStyleDelete;

}

    //5.提交编辑效果

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

    if (editingStyle ==  UITableViewCellEditingStyleDelete) {

        // 从数据源删除数据

        [_arrayM removeObjectAtIndex:indexPath.row];

        [self userDefault];

        //提交并刷新

        [_tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];

        

        

    }

}

#pragma mark - 编辑状态下可以移动cell

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

    

    NSLog(@"%ld %ld",(long)sourceIndexPath.row,(long)destinationIndexPath.row);

     NSLog(@"%ld %ld",(long)sourceIndexPath.row,(long)destinationIndexPath.row);

    // 取出目标数据

    NSString *str  = [_arrayM objectAtIndex:sourceIndexPath.row];

    //删除目标数据

    [_arrayM removeObjectAtIndex:sourceIndexPath.row];

    

    [_arrayM insertObject:str atIndex:destinationIndexPath.row];

    [self userDefault];

}

- (void)userDefault{

    NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];

    [userDefault setObject:_arrayM forKey:@"Array"];

    NSLog(@"%@",_arrayM);

 

}

FWZViewController.h

#import <UIKit/UIKit.h>

 

@interface FWZViewController : UIViewController

@property (nonatomic,assign)NSString *cellName;

@end

 

FWZViewController.m

#import "FWZViewController.h"

#define SCREEN_W self.view.frame.size.width

 

@interface FWZViewController ()

{

    UILabel *_label;

}

@end

 

@implementation FWZViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    [self addUIlabel];

}

- (void)addUIlabel{

    _label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, SCREEN_W,100)];

    _label.backgroundColor = [UIColor purpleColor];

    _label.text = self.cellName;

    _label.textColor = [UIColor blackColor];

    [self.view addSubview:_label];

}

 

转载于:https://www.cnblogs.com/fanwenzheIOS/p/4973856.html

你可能感兴趣的文章
Hadoop 多表连接
查看>>
使用maven下载jar包,使用ant打包。yqxt项目的安装。
查看>>
Ubuntu 一键安装openresty
查看>>
dlmalloc
查看>>
学习与准备的一些资源
查看>>
MySQL索引背后的数据结构及算法原理
查看>>
Eclipse SVN的更新地址是
查看>>
Intel XDK 跨平台 App 开发初体验
查看>>
Windows 下msvc2010编译 NSIS 2.46
查看>>
第三方授权登录(微博篇)
查看>>
苹果App Store审核指南中文翻译(2014.9.1更新)
查看>>
如何复制一个LIST
查看>>
说说我为什么看好Spring Cloud Alibaba
查看>>
RecyclerView 差异更新(diff)
查看>>
Android之ActionBar学习
查看>>
对于法线贴图的深入研究
查看>>
Linux操作
查看>>
并发编程之Operation Queue和GCD
查看>>
perl命令行批量修改文件内容
查看>>
zk服务器的构成,一个请求是如何处理的
查看>>