`
caoyudong
  • 浏览: 26725 次
  • 性别: Icon_minigender_1
  • 来自: 扬州
社区版块
存档分类
最新评论

联系人分组

iOS 
阅读更多

url:http://mobile.9sssd.com/ios/art/967

#import <UIKit/UIKit.h>
2 @interface HomeViewController : UIViewController
3 <UITableViewDelegate, UITableViewDataSource>{
4 }
5 @property (nonatomic, retain) NSDictionary *contactTitles;//存储所有的联系人信息
6 @property (nonatomic, retain) NSArray *groups;//所有分类名称存入数组中
7 @end
3. HomeViewController.m中添加代码

View Row Code
1 #import "HomeViewController.h"
2 @interface HomeViewController ()
3 @end
4 @implementation HomeViewController
5 @synthesize contactTitles;
6 @synthesize groups;
7 - (void)viewDidLoad
8 {
9   
10     NSString *path = [[NSBundle mainBundle] pathForResource:@"contacts" ofType:@"plist"];//plist文件路径
11     NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
12     self.contactTitles = dict;
13     [dict release];
14    
15     NSArray *array = [[contactTitles allKeys] sortedArrayUsingSelector:@selector(compare:)];
16    
17     self.groups = array;
18     [super viewDidLoad];
19 }
20 //使用UITableViewDataSource协议的tableView:cellForRowAtIndexPath:方法
21 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
22    
23     static NSString *CellIndentifier = @"Contact";
24    
25     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIndentifier];
26    
27     if (cell == nil) {
28         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIndentifier] autorelease];
29        
30     }
31    
32    
33        NSString *group = [groups objectAtIndex:[indexPath section]];
34     NSArray * contactSection = [contactTitles objectForKey:group];
35     cell.textLabel.text = [contactSection objectAtIndex:[indexPath row]];
36    
37    
38     //单元格添加图片
39     UIImage *image = [UIImage imageNamed:@"avatar.png"];
40     cell.imageView.image = image;
41    
42    
43     return cell;
44 }
45 - (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView{
46     return [groups count];
47 }
48 //使用UITableViewDataSource协议的tableView:numberOfRowsInSection:方法
49 //该方法用来设置Table View中要显示数据的行数
50 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
51
52     NSString *group = [groups objectAtIndex:section];
53     NSArray *contactSection = [contactTitles objectForKey:group];
54    
55     return [contactSection count];
56 }
57 //添加标题和脚本信息
58 - (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
59     NSString *group = [groups objectAtIndex:section];
60     return group;
61    
62 }
63 - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
64     return @"作者:what if";
65 }
66
67
68 /*//UITableViewDelegate协议的方法,选择表格中的项目
69 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
70     NSString *contactSelected = [listOfContacts objectAtIndex:[indexPath row]];
71     NSString *msg = [[NSString alloc] initWithFormat:@"您选择的联系人:%@", contactSelected];
72     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"选择联系人" message:msg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
73     [alert show];
74     [alert release];
75     [contactSelected release];
76     [msg release];
77 } */
78 /*
79 //UITableViewDelegate协议的方法,表格中的缩进
80 - (NSInteger) tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{
81     return [indexPath row] % 9;
82    
83 }*/
84 //索引功能
85
86 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
87     return groups;
88 }
89 //用户点击标志后触发的事件,只有DetailDisclosure Button才有该事件
90 - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
91     //进入到该项目的详细信息页面
92 }
分享到:
评论

相关推荐

    联系人分组列表

    ### 联系人分组列表 #### 核心概念解析 1. **UITableView**:在iOS开发中,UITableView是用于展示列表数据的重要UI组件。它支持多种样式,包括简单的列表、分组列表等。本例中使用的正是分组样式(`...

    Android 仿QQ联系人分组滑动到顶部固定住直到下一个分组到达顶端 源码

    在Android开发中,实现类似QQ联系人分组的交互效果是一项常见的需求,它能提供用户友好的体验。这个源码项目“Android 仿QQ联系人分组滑动到顶部固定住直到下一个分组到达顶端”正是针对这一功能的实现。在本文中,...

    联系人效果分组效果

    首先,"从a-z"的排序方式是一种常见的联系人分组方法,它基于联系人的姓氏或名字首字母进行排列。这种分组方式易于理解和操作,用户可以通过快速扫视字母表来找到目标联系人。在实现过程中,开发者通常会利用数据...

    联系人列表,索引,分组

    3. 分组管理:实现对联系人分组的创建、修改和删除功能。 4. 列表展示:使用ListView或RecyclerView展示联系人列表,每个条目可能包含姓名、电话、电子邮件等信息。 5. 搜索和过滤:添加搜索框,实时过滤和更新列表...

    Android仿微信联系人分组列表

    在Android开发中,创建一个类似微信联系人分组列表的应用是一项常见的需求。这个功能的核心在于使用ListView组件来展示数据,并通过巧妙的布局设计实现分组显示的效果。ListView是Android SDK中一个非常重要的视图...

    android仿联系人分组滑动特效

    在Android开发中,实现“仿联系人分组滑动特效”是一种常见的需求,尤其是在构建类似通讯录的应用时。这种特效通常涉及到对数据的分组、列表视图的自定义以及触摸滑动事件的处理。核心组件是`PinnedHeaderListView`...

    一个联系人管理,包括分组

    为了实现分组功能,应用还需要一个额外的数据结构来存储联系人分组信息,比如群组名和包含的联系人ID列表。 2. **用户界面**:良好的用户体验是关键。ContactsManager可能具有清晰的界面布局,允许用户轻松添加、...

    CSV文件导入邮件联系人到OUTLOOK2007及分组群发方法

    2. **联系人分组**: - 要创建分组,首先在“文件”菜单下选择“新建”然后点击“文件夹”,在弹出的设置页面填入分组名称,如“IT部”或“经理级别”,并将位置设为“联系人”。 - 新建的文件夹会在联系人列表中...

    android 支持分组和联系人展示的一个小例子(类似QQ首页)

    在Android开发中,构建一个类似QQ首页的分组和联系人展示功能是一项常见的需求,它涉及到数据结构的设计、UI布局的构建以及数据的加载与显示等多个方面。本项目"ContactProject"提供了一个小实例,帮助开发者理解...

    Android通讯录分组联系人更新

    - **清理联系人分组**:删除分组后,可能需要检查并清理那些失去分组归属的联系人,确保通讯录数据的整洁。 5. **更新分组数据** - **修改分组信息**:要更新已存在的分组,可以使用`ContentResolver.update()`...

    ios-管理分组和联系人.zip

    iOS系统提供了Contacts框架,它是苹果官方提供的API,用于访问和操作设备上的联系人和联系人分组。通过这个框架,开发者可以创建、读取、更新和删除联系人,以及创建、删除和管理联系人分组。 1. **Contacts框架**...

    Android-仿微信通讯录的实现联系人按字母分组显示右侧添加快速索引条

    总的来说,实现“Android-仿微信通讯录的实现联系人按字母分组显示右侧添加快速索引条”涉及到Android界面设计、数据结构、排序算法以及事件监听等多个知识点,是一个综合性的开发任务。通过这样的实践,开发者可以...

    Android实现类似微信联系人中的分组列表的例子

    在Android开发中,创建一个类似微信联系人分组列表的应用是一项常见的需求,它涉及到数据的组织、UI组件的使用以及事件处理等多个方面。本示例将重点讲解如何使用ExpandableListView来实现这样的功能。 首先,我们...

    电信设备-通讯录中联系人的分组方法、装置和移动终端.zip

    1. **联系人分组**:联系人分组是将多个联系人依据共同特征(如家庭成员、同事、朋友等)进行分类,方便用户快速查找和管理。在通信录中,通过分组可以降低信息查找的复杂度,提高工作效率。 2. **分组方法**:分组...

    C#类似于QQ分组

    这个功能可以让用户更加高效地管理和查找相关信息,类似于QQ软件中将联系人分组以便于分类和沟通。 首先,我们需要理解QQ分组的基本概念。在QQ中,用户可以创建多个分组,每个分组内包含若干个联系人,这样用户就能...

    c# 开发的通讯录 新添加自定义分组功能

    1. **自定义分组功能**:用户可以根据需求创建个性化的联系人分组,如家庭、工作、朋友等。这一功能通过数据库设计实现,每个联系人可以隶属于一个或多个分组,分组之间可能存在层次结构。在C#中,可以使用Entity ...

    android 联系人模块例子

    Android还支持联系人分组管理,用户可以将联系人分到不同的组中。开发者可以通过`ContactsContract.Groups`和`ContactsContract.GroupsColumns`来操作这些分组。 8. **同步适配器**: 对于跨设备同步联系人,...

    手机联系人

    5. **联系人分组**:用户可能希望将联系人分组,例如家庭、工作等。实现此功能需要支持创建、编辑和删除联系人分组,并能将联系人分配到不同的分组。 6. **同步与备份**:为防止数据丢失,应用应提供同步和备份功能...

    android11 特殊符号开头的联系人显示到“#”分组下面.pdf

    在Android 11系统中,有一个特定的联系人分组问题,涉及到那些以特殊符号开头的联系人条目。在默认情况下,这些特殊符号的联系人会在“...”分组下显示,但根据描述,我们需要将它们调整到“#”分组下。这涉及到对...

    android联系人管理

    本项目“Android联系人管理”旨在提供一个基本的实现,涵盖新建、编辑、删除联系人以及对联系人分组的操作。下面将详细阐述这个项目中的核心知识点。 1. **联系人ContentProvider**: Android中的联系人数据存储在...

Global site tag (gtag.js) - Google Analytics