iOS UITableViewCell滑动删除
首先,我们初始化一个界面,以列表的形式展示
|
1
2
3
4
5
6
7
8
9
10
11
|
#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];} |
然后,准备数据源
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
@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"]];} |
接下来我们要将数据显示出来
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#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的一些代理方法
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
//先要设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滑动删除的效果啦。
效果图:

posted on 2016-07-26 16:11 yucaijiang 阅读(5142) 评论(1) 收藏 举报
浙公网安备 33010602011771号