2011-10-13 68 views
1

先謝謝您的幫助,我無法在代碼中包裝頭。我試圖將現有的可用工具完美地分成4個部分。正如你所看到的,我有4個部分,每個部分有不同數量的行和每個部分的名稱。編譯時,這些部分正確的存在,但單元格重複。我已經嘗試了各種方法從主題上的其他帖子以及谷歌搜索的信息,但我不斷收到大量的錯誤。如果有人能告訴我我要離開的東西,我將不勝感激!謝謝。使用uitableview部分出現問題 - 單元格在每個部分都重複

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
// Return the number of sections. 
return 4; 
} 

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
switch (section) { 
    case 0: 
     return 2; 
     break; 
    case 1: 
     return 3; 
     break; 
    case 2: 
     return 2; 
     break; 
    case 3: 
     return 1; 
     break; 
} 
return 0; 
} 


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { 
NSString *sectionHeader = nil; 

if(section == 0) { 
    sectionHeader = @"Section 1"; 
} 
if(section == 1) { 
    sectionHeader = @"Section 2"; 
} 
if(section == 2) { 
    sectionHeader = @"Section 3"; 
} 
if(section == 3) { 
    sectionHeader = @"Section 4"; 
} 

return sectionHeader; 
} 

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
    [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; 
    [cell.textLabel setNumberOfLines:2]; 
} 

cell.textLabel.font = [UIFont systemFontOfSize:14.0]; 
cell.detailTextLabel.font = [UIFont systemFontOfSize:11.5]; 

switch (indexPath.row) { 
    // I would like these in Section One 
    case 0: 
     [cell.textLabel setText:@"Cell one"]; 
     [cell.detailTextLabel setText:@"subtext one"]; 
     break; 
    case 1: 
     [cell.textLabel setText:@"Cell two"]; 
     [cell.detailTextLabel setText:@"subtext two"]; 
     break; 
// And these in Section Two 
    case 2: 
     [cell.textLabel setText:@"Cell three"]; 
     [cell.detailTextLabel setText:@"subtext three"]; 
     break; 
    case 3: 
     [cell.textLabel setText:@"Cell four"]; 
     [cell.detailTextLabel setText:@"subtext four"]; 
     break; 
    case 4: 
     [cell.textLabel setText:@"Cell five"]; 
     [cell.detailTextLabel setText:@"subtext five"]; 
     break; 
    // And these in Section Three 
    case 5: 
     [cell.textLabel setText:@"Cell six"]; 
     [cell.detailTextLabel setText:@"subtext six"]; 
     break; 
    case 6: 
     [cell.textLabel setText:@"Cell seven"]; 
     [cell.detailTextLabel setText:@"subtext seven"]; 
     break; 
    // And this in Section four 
    case 7: 
     [cell.textLabel setText:@"Cell eight"]; 
     [cell.detailTextLabel setText:@"subtext eight"]; 
     break; 
    default: 
     break; 
} 

return cell;   
} 

回答

1

,你必須在的cellForRowAtIndexPath添加

switch (indexPath.section) 

或if-else子句。

是這樣的:

if (indexPath.section == 0 && indexPath.row == 0) 
{ 
    // for the first row in the first section 
} 
else if (indexPath.section == 3 && indexPath.row == 2) 
{ 
    // for the 4 section and 3 row 
} 
相關問題