标签:uitableview plist 通讯录 手机 索引
<pre name="code" class="objc">首先重写UITableViewCell的初始化方法:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { // Initialization code self.photoView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 5, 80, 80)]; _photoView.layer.cornerRadius = 40; _photoView.layer.masksToBounds = YES; [self.contentView addSubview:_photoView]; [_photoView release]; self.nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(120, 5, 60, 35)]; [self.contentView addSubview:_nameLabel]; [_nameLabel release]; self.ageLabel = [[UILabel alloc] initWithFrame:CGRectMake(200, 5, 40, 35)]; [self.contentView addSubview:_ageLabel]; [_ageLabel release]; self.genderLabel = [[UILabel alloc] initWithFrame:CGRectMake(260, 5, 40, 35)]; [self.contentView addSubview:_genderLabel]; [_genderLabel release]; self.phoneNumberLabel = [[UILabel alloc] initWithFrame:CGRectMake(120, 50, 200, 35)]; [self.contentView addSubview:_phoneNumberLabel]; [_phoneNumberLabel release]; } return self; }
@interface RootViewController ()<UITableViewDataSource,UITableViewDelegate> @property (nonatomic, retain) NSDictionary *dic; @property (nonatomic, retain) NSArray *titles; @end @implementation RootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization self.dic = [self readDataFromPlist]; self.titles = [[self.dic allKeys] sortedArrayUsingSelector:@selector(compare:)]; } return self; } - (NSDictionary *)readDataFromPlist { NSString *filePath = [[NSBundle mainBundle] pathForResource:@"AddressBook-2" ofType:@"plist"]; NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:filePath]; return dic; } - (void)loadView { UITableView *tableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain]; tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; tableView.separatorColor = [UIColor lightGrayColor]; tableView.dataSource = self; tableView.delegate = self; tableView.rowHeight = 90; self.view = tableView; [tableView release]; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.navigationItem.title = @"所有联系人"; } #pragma mark - UITableViewDataSource //设置行数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.dic[self.titles[section]] count]; } //创建cell - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *identifier = @"mark"; StudentCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if (!cell) { cell = [[[StudentCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier] autorelease]; } NSDictionary *dic = self.dic[self.titles [indexPath.section]][indexPath.row]; cell.photoView.image = [UIImage imageNamed:[dic objectForKey:@"imageName"]]; cell.nameLabel.text = [self.dic[self.titles [indexPath.section]][indexPath.row] objectForKey:@"name"]; cell.ageLabel.text = [self.dic[self.titles [indexPath.section]][indexPath.row] objectForKey:@"age"]; cell.genderLabel.text = [self.dic[self.titles [indexPath.section]][indexPath.row] objectForKey:@"gender"]; cell.phoneNumberLabel.text = [self.dic[self.titles [indexPath.section]][indexPath.row] objectForKey:@"phoneNumber"]; return cell; } //设置分区 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return [self.titles count]; } //页眉 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { return self.titles[section]; } //索引值 - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { return self.titles; } #pragma mark - UITableViewDelegate //当cell被选中时触发 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *str = [self.dic[self.titles [indexPath.section]][indexPath.row] objectForKey:@"phoneNumber"]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",str]]]; //2、用UIWebView来实现,打电话结束后会返回当前应用程序: UIWebView *callPhoneWebVw = [[UIWebView alloc] init]; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"tell://%@",str]]]; [callPhoneWebVw loadRequest:request]; }通过以上步骤,可实现简单通讯录.
标签:uitableview plist 通讯录 手机 索引
原文地址:http://blog.csdn.net/w_sx_/article/details/39047653