0
点赞
收藏
分享

微信扫一扫

iOS UITableViewCell滑动删除

首先,我们初始化一个界面,以列表的形式展示


​#pragma mark - 初始化UI​

​- (​​​​void​​​​)initUI{​

​self​​​​.view.backgroundColor = RGB(242, 242, 247);​

​self​​​​.automaticallyAdjustsScrollViewInsets = ​​​​NO​​​​;​

​sideslipTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 60, kScreenWidth, kScreenHeight - 60) style:UITableViewStylePlain];​

​sideslipTableView.backgroundColor = [UIColor clearColor];​

​sideslipTableView.delegate = ​​​​self​​​​;​

​sideslipTableView.dataSource = ​​​​self​​​​;​

​sideslipTableView.separatorStyle = UITableViewCellSeparatorStyleNone;​

​[​​​​self​​​​.view addSubview:sideslipTableView];​

​}​


然后,准备数据源


​@interface​​​ ​​ViewController ()<UITableViewDataSource,UITableViewDelegate>{​

​UITableView *sideslipTableView;​

​//可变数组,用于删除数据​

​NSMutableArray​​​ ​​*dataArray;​

 

​}​

 

​@end​

 

​@implementation​​​ ​​ViewController​

 

​- (​​​​void​​​​)viewDidLoad {​

​[​​​​super​​​ ​​viewDidLoad];​

 

​[​​​​self​​​ ​​initUI];​

​dataArray = [​​​​NSMutableArray​​​ ​​arrayWithArray: @[​​​​@"1111"​​​​,​​​​@"2222"​​​​,​​​​@"3333"​​​​,​​​​@"4444"​​​​,​​​​@"5555"​​​​,​​​​@"6666"​​​​,​​​​@"7777"​​​​,​​​​@"8888"​​​​,​​​​@"9999"​​​​]];​

​}​


接下来我们要将数据显示出来


​#pragma mark - 行​

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

​return​​​ ​​dataArray.count;​

​}​

​#pragma mark - 行高​

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

​return​​​ ​​46;​

​}​

​#pragma mark - cell内容​

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

​static​​​ ​​NSString​​​ ​​*indefier = ​​​​@"cell"​​​​;​

​sideslipTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:indefier];​

​if​​​ ​​(!cell) {​

​cell = [[sideslipTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:indefier];​

​}​

​cell.selectionStyle = UITableViewCellSelectionStyleNone;​

​cell.lable.text = dataArray[indexPath.row];​

​return​​​ ​​cell;​

​}​


最后,实现UITableView的一些代理方法


​//先要设Cell可编辑​

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

​{​

​return​​​ ​​YES​​​​;​

​}​

​//定义编辑样式​

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

​{​

​return​​​ ​​UITableViewCellEditingStyleDelete;​

​}​

​//进入编辑模式,按下出现的编辑按钮后,进行删除操作​

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

​{​

​if​​​ ​​(editingStyle == UITableViewCellEditingStyleDelete) {​

​[dataArray removeObjectAtIndex:indexPath.row];​

​// Delete the row from the data source.​

​[sideslipTableView deleteRowsAtIndexPaths:[​​​​NSArray​​​ ​​arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];​

​}​

​}​

​//修改编辑按钮文字​

​- (​​​​NSString​​​ ​​*)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(​​​​NSIndexPath​​​ ​​*)indexPath​

​{​

​return​​​ ​​@"删除"​​​​;​

​}​


这样就可以实现UITableViewCell滑动删除的效果啦。

效果图:

举报

相关推荐

0 条评论