Objective-C Sectioned UITableView

时间:2013-09-12 07:34:30

标签: objective-c uitableview sections

我想要一个分段的UITableView,但我不知道如何,我的情况:

我有2个阵列

阵列日期(“12/08/13”,“13/08/13”,“17/08/13”) 数组计数(“2”,“1”,“5”)

计数表示该部分中有多少行。

我有

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [dateArray objectAtIndex:section];
}

但是如何在第一部分中,第2部分中的2行1行和第3部分中的5行。

我希望有人可以帮助我。如果您有疑问,请询问。

感谢。

编辑:我从我的网站上获取了我的信息,因此阵列每天都在变化。

3 个答案:

答案 0 :(得分:2)

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // length of your section count array:
    return [sectionCountArray count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section            
{
    // the section count from your array, converted to an integer:
    return [sectionCountArray[section] integerValue];
}

更新:从您的评论中看来您似乎有一个“扁平”数据源数组。 由于行号在每个部分中以零开头,因此您必须计算 从所有前面部分的行号和部分计数索引到数组 在cellForRowAtIndexPath

NSInteger flatIndex = indexPath.row;
for (NSInteger sec = 0; sec < indexPath.section; sec++)
    flatIndex += [tableView numberOfRowsInSection:sec];

cell.textLabel.text = yourFlatDataArray[flatIndex]; // (Just an example!)

答案 1 :(得分:1)

您返回numberOfSectionsInTableView:

中的部分数量
 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
      return [self.countArray count];
 }

然后从数组中获取数字并返回numberOfRowsInSection:

中的数字
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section            
 {
      NSNumber *count = [self.countArray objectAtIndex:section];

      return [count integerValue];
 }

答案 2 :(得分:-1)

您需要覆盖以下UITableView数据源方法:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  if (section == 0)
    return 2
  else if (section == 1)
    return 1
  else (section == 2)
    return 5
}