在iPhone上显示像App这样的联系人的问题

时间:2010-08-17 21:11:51

标签: iphone database uitableview

我正在尝试为iphone创建一个联系人,其中联系人的姓名显示在顶部(为此我将在viewForHeaderInSection中编写代码),然后详细信息将在分组部分中显示。问题是我正在从数据库中检索值,如果第一个名称为null,它将显示在表中。我想删除空值并显示其中包含值的字段。名称保存在数组中。我试图从数据库中获取以下字段以显示在表格上。

NSMutableArray *nameSectionDetails=[[NSMutableArray alloc]initWithObjects:[eachContact objectAtIndex:0], [eachContact objectAtIndex:1], [eachContact objectAtIndex:2],[eachContact objectAtIndex:3],[eachContact objectAtIndex:4],[eachContact objectAtIndex:19],nil];

NSMutableDictionary * nameSection = [[NSMutableDictionary alloc] initWithObjectsAndKeys:nameSectionDetails,@“name”,nil];  self.labelSection = nameSection;

eachContact包含特定联系人的所有详细信息。

这是我试图展示的地方

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
 if(section == 0) {
  // create the parent view that will hold 1 or more buttons
  UIView* buttonView = [[[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 100.0)]autorelease];

  UILabel *updateDeletedLabel = [[[UILabel alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 60.0)] autorelease];
  /*updateDeletedLabel.text = [NSString stringWithFormat:@"%@\n%@ %@\n%@\n%@",[eachContact objectAtIndex:1],[eachContact objectAtIndex:3],[eachContact objectAtIndex:2],[eachContact objectAtIndex:3],[eachContact objectAtIndex:4],[eachContact objectAtIndex:19]];*/
  /*for(int i=1;i<[[labelSection objectForKey:@"name"]count];i++)
  {
   if([[[labelSection objectForKey:@"name"]objectAtIndex:i] isEqualToString:@"(null)"])
    [[labelSection objectForKey:@"name"]removeObjectAtIndex:i];
   //i+=i*i;

  }*/


  updateDeletedLabel.text=[NSString stringWithFormat:@"%@ %@ %@\n%@\n%@\n%@",[[labelSection objectForKey:@"name"]objectAtIndex:1],[[labelSection objectForKey:@"name"]objectAtIndex:3],[[labelSection objectForKey:@"name"]objectAtIndex:5],[[labelSection objectForKey:@"name"]objectAtIndex:7],[[labelSection objectForKey:@"name"]objectAtIndex:9],[[labelSection objectForKey:@"name"]objectAtIndex:11]];

  updateDeletedLabel.font = [UIFont systemFontOfSize:12];
  updateDeletedLabel.numberOfLines = 0;
  updateDeletedLabel.lineBreakMode = UILineBreakModeWordWrap;
  updateDeletedLabel.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
  [updateDeletedLabel setTextAlignment: UITextAlignmentCenter];

  // add the button to the parent view

  [buttonView addSubview:updateDeletedLabel];

  return buttonView;
 }
 return nil;
}

任何人都可以在这方面帮助我。我是一个新手学习iphone应用程序,如果你可以建议任何其他方法,我很高兴知道。感谢!!!

1 个答案:

答案 0 :(得分:1)

您应该了解自定义UITableCells

请参阅http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html#//apple_ref/doc/uid/TP40007451

尤其是此代码:http://developer.apple.com/iphone/library/samplecode/TableViewSuite/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007318

在评论中澄清之后进行修改

仍然你应该去提到的文档,因为你正在使用tableview错误。

在第0部分的标题视图中,您只会返回一个显示照片和名称的视图。 (可能使用从nib文件加载的自定义视图)

您要在–tableView:cellForRowAtIndexPath:

中创建的单元格

修改

我很好奇,做这样的应用真的需要做什么。 Here are the results

这还没有准备好生产 - 如果不提​​供姓名,姓名或图片,则DetailView将崩溃

          By using this code, you agree in doing your 
          homework and study the mentioned documentation!

screenshot