2010-08-17 94 views
0

我想創建一個類似於iphone的應用程序的聯繫人,其中聯繫人的名稱顯示在頂部(爲此,我在viewForHeaderInSection中編寫代碼),然後詳細信息如下分組部分。問題是我從數據庫中檢索值,如果名字爲空,它會顯示在表格中。我想刪除空值並顯示其中包含值的字段。名稱保存在一個數組中。我試圖從數據庫中獲取以下字段以顯示在表上。在iPhone上顯示聯繫人類似的應用程序的問題

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 = [[ALLOC的NSMutableDictionary] initWithObjectsAndKeys:nameSectionDetails,@ 「姓名」,零]。 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

你應該瞭解定製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部分的headerview中,您只會返回一個顯示照片和名稱的視圖。 (可能使用從筆尖文件加載自定義視圖)

的細胞,你會創造–tableView:cellForRowAtIndexPath:

編輯

我很好奇,它確確實實需要做這樣一個應用程序。 Here are the results

THIS IS NOT READY用於生產 - 如果不提​​供名稱,familyname或pictureurl,該的DetailView會崩潰

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

screenshot

+0

感謝您的答覆,但這不是什麼我在尋找。例如,如果你點擊一個索引表視圖中的聯繫人,另一個視圖控制器彈出,它提供了該聯繫人的詳細信息..我希望它看起來像iphone上的聯繫人應用程序..請幫助.. – racharambola 2010-08-17 22:00:02

+0

只是爲了理解:U有n個單元格的tableview。在細胞中你有名字。當你選中一個單元格時,會彈出一個視圖,顯示所有的細節。你在談論那個DetailView? – vikingosegundo 2010-08-17 22:04:07

+0

是的,你是對的..我在談論詳細的視圖..我很抱歉所有的困惑..你能幫忙嗎? – racharambola 2010-08-17 22:06:37

相關問題