2012-03-07 2 views
0

У меня вопрос о заголовках нескольких разделов в разных разделах.Пользовательский сгруппированный заголовок UITable в разных разделах

У меня есть следующие коды для текста заголовка первого раздела. однако во втором разделе он отображает тот же заголовочный текст, что и первый раздел. Могу ли я узнать, как изменить код, чтобы я мог отображать другой текст во втором заголовке?

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
// create the parent view that will hold header Label 
UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 44.0)]; 

// create the button object 
UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 
headerLabel.backgroundColor = [UIColor clearColor]; 
headerLabel.opaque = NO; 
headerLabel.textColor = [UIColor whiteColor]; 
headerLabel.highlightedTextColor = [UIColor whiteColor]; 
headerLabel.font = [UIFont boldSystemFontOfSize:20]; 
headerLabel.frame = CGRectMake(10.0, 0.0, 300.0, 44.0); 

// If you want to align the header text as centered 
// headerLabel.frame = CGRectMake(150.0, 0.0, 300.0, 44.0); 

headerLabel.text = @"section 1"; // i.e. array element 
[customView addSubview:headerLabel]; 

return customView; 
} 

ответ

2

Вы должны использовать различные пользовательские элементы для каждого раздела.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 44.0)]; 
    UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 
    headerLabel.backgroundColor = [UIColor clearColor]; 
    headerLabel.opaque = NO; 
    headerLabel.textColor = [UIColor whiteColor]; 
    headerLabel.highlightedTextColor = [UIColor whiteColor]; 
    headerLabel.font = [UIFont boldSystemFontOfSize:20]; 
    headerLabel.frame = CGRectMake(10.0, 0.0, 300.0, 44.0); 

    // If you want to align the header text as centered 
    // headerLabel.frame = CGRectMake(150.0, 0.0, 300.0, 44.0); 
if(section == 1) 
    headerLabel.text = @"section 1"; // i.e. array element 
else if(section == 2) 
    headerLabel.text = @"section 2"; // i.e. array element 
else 
    headerLabel.text = @"section 3";//and so on 
    [customView addSubview:headerLabel]; 

    return customView; 
} 
2

Вместо этого

headerLabel.text = @"section 1"; // i.e. array element 

Используйте этот

headerLabel.text=[arrayContainingSectionName objectAtIndex:section]; 
Смежные вопросы