PGzxc的博客

纸上得来终觉浅 绝知此事要躬行

0%

IOS开发之——私人通讯录删除联系人(59)

一 概述

本文介绍私人通讯录相关的联系人删除相关的操作,涉及以下知识点:

  • 左滑删除联系人,界面全局和局部刷新
  • 编辑联系人,界面全局和局部刷新
  • 左滑删除的文字如何显示中文删除

二 效果图

三 左滑删除联系人,界面全局和局部刷新

3.1 说明

  • 联系人ConTroller只要实现commitEditingStyle方法,列表项向左滑动会出现删除按钮
  • commitEditingStyle方法中自己实现删除数据并刷新界面

3.2 代码

1
2
3
4
5
6
7
8
9
10
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle==UITableViewCellEditingStyleDelete) {
//删除数据
[self.contacts removeObjectAtIndex:indexPath.row];
//刷新界面
//[self.tableView reloadData];//全局刷新
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];//删除局部
}
NSLog(@"%ld",indexPath.row);
}

四 编辑联系人,界面全局和局部刷新

4.1 功能说明

  • 联系人ConTroller的didUpdateContact方法是更新联系人要实现的方法
  • 在此方法中处理全局和局部刷新逻辑

4.2 代码

1
2
3
4
5
6
7
8
9
-(void)editViewController:(EditViewController *)edit didUpdateContact:(Contact *)contact
{
//刷新表格
//[self.tableView reloadData];//全部刷新
NSIndexPath *selectIndex=[self.tableView indexPathForSelectedRow];
[self.tableView reloadRowsAtIndexPaths:@[selectIndex] withRowAnimation:UITableViewRowAnimationLeft];
//归档
[NSKeyedArchiver archiveRootObject:self.contacts toFile:FilePath];
}

五 左滑删除的文字如何显示中文删除

5.1 前提

  • 系统语言是中文
  • 添加中文本地化

5.2 添加本地化操作

  • 依次选择:项目——>Locallization——>+,在弹出的语言列表中选择中文简体