在使用Sections时详细介绍UItableView

时间:2012-08-09 14:42:59

标签: ios sections uitableview

有人可以帮助我。我是非常新的,并试图找到我的细节屏幕,只要我不使用部分工作正常。我试图抓住细节的文件是html文件。 (编号1 - 53)。什么时候是没有部分的细节,我只是使用 htmlFile = [artikelen objectAtIndex:[path row]] to seque;

当我使用[path row]部分时,将会是[0.1],而不是继续编号。

我当然希望有人可以帮助我解决和理解这个问题。

感谢。

雅科

   [super viewDidLoad];
    artikelen = [[NSMutableArray alloc]initWithObjects:@"artikel1",@"artikel2",@"artikel3",@"artikel4",@"artikel5",@"artikel6",@"artikel7",@"artikel8",@"artikel9",@"artikel10",@"artikel11",@"artikel12",@"artikel13",@"artikel14",@"artikel15",@"artikel16",@"artikel17",@"artikel18",@"artikel19",@"artikel20",@"artikel21",@"artikel22",@"artikel23",@"artikel24",@"artikel25",@"artikel26",@"artikel27",@"artikel28",@"artikel29",@"artikel30",@"artikel31",@"artikel32",@"artikel33",@"artikel34",@"artikel35",@"artikel36",@"artikel37",@"artikel38",@"artikel39",@"artikel40",@"artikel41",@"artikel42",@"artikel43",@"artikel44",@"artikel45",@"artikel46",@"artikel47",@"artikel48",@"artikel49",@"artikel50",@"artikel51",@"artikel52",@"artikel53",@"artikel54", nil];

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 14;
}


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    NSArray *sectionTitles = [[NSArray alloc]

initWithObjects:@"Hoofdstuk I.", @"Hoofdstuk
II.",@"Hoofdstuk III.",@"Hoofdstuk IV.",@"Hoofdstuk IVA.",@"Hoofdstuk IVB.",@"Hoofdstuk    

V.",@"Hoofdstuk VA.",@"Hoofdstuk VI.",@"Hoofdstuk VII.",@"Hoofdstuk VII B.",
                                  @"Hoofdstuk VIIC.",@"Hoofdstuk VIII.",nil];

        return sectionTitles;
    }


- (NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section
{
    if ( section == 0 ) return @"Hoofdstuk I. Algemeen";
    if ( section == 1 ) return @"Hoofdstuk II. De instelling";
    if ( section == 2 ) return @"Hoofdstuk III. Samenstelling ";
    if ( section == 3 ) return @"Hoofdstuk IV. Het overleg ";
    if ( section == 4 ) return @"Hoofdstuk IVA. bevoegdheden ";
    if ( section == 5 ) return @"Hoofdstuk IVB. Hgegevens aan de ondernemingsraad";
    if ( section == 6 ) return @"Hoofdstuk IVC. Verdere bevoegdheden van de";
    if ( section == 7 ) return @"Hoofdstuk V. De centrale ";
    if ( section == 8 ) return @"Hoofdstuk VA.";
    if ( section == 9 ) return @"Hoofdstuk VI. De algemene";
    if ( section == 10 ) return @"Hoofdstuk VII.";
    if ( section == 11 ) return @"Hoofdstuk VII. A.de overheid";
    if ( section == 12 ) return @"Hoofdstuk VII. B ";
    if ( section == 13 ) return @"Hoofdstuk VIII";
    return @"Other";
}

显示我使用的正确行数:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if ( section == 0 ) return 1;
    if ( section == 1 ) return 4;
... etcetra
return 0;
}

显示我使用的正确单元格:

if ( indexPath.section == 12  ) mijnRij += 45;   //7a
if ( indexPath.section == 13  ) mijnRij += 56;   //8

cell.textLabel.text = [artikelen objectAtIndex:mijnRij];
return cell;

1 个答案:

答案 0 :(得分:1)

如果您使用更好的数据结构,它将使编码更容易。

我建议你的主要结构应该是一个字典数组。每个字典应匹配一个部分并包含两个键。第一个键应该为您提供节标题,第二个键应该为您提供一个与该节中的行匹配的数组。

这样你就不需要那么多条件了。部分编号告诉您使用哪个字典,该行告诉您在字典的子数组中查找的位置。