0

我正在使用一个使用动态部分的 tableview,我有一个 sectionArray,它由部分标题和另一个包含所有部分的全部数据的数组组成,我无法弄清楚如何为每个部分编写行的单元格,因为它是动态的

代码是:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
  return [appDelegate.sectionArray count];
}

- (NSInteger)tableView:(UITableView *)tableView
 numberOfRowsInSection:(NSInteger)section
{
  return [appDelegate.appNameArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  static NSString *CellIdentifier = @"Cell";

  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  UILabel *AppNameLabel=[[UILabel alloc]initWithFrame:CGRectMake(80, 0, 120, 30)];
  [AppNameLabel setBackgroundColor:[UIColor clearColor]];
  [AppNameLabel setText:[NSString stringWithFormat:@"%@",[appDelegate.appNameArray objectAtIndex:indexPath.row]]];
  [AppNameLabel setFont:[UIFont systemFontOfSize:14]];
  [cell.contentView addSubview:AppNameLabel];
  return cell;
}

在 appname 数组中,我有包含所有部分的数据,我需要为特定部分隔离,如何在单元格中制作行索引请帮助。

提前致谢。

4

3 回答 3

2

无需array为 sectionTitle 和 appName 创建两个不同的。NSArray使用NSDictionaryof 对象创建源。NSDictionary对象包含 appName 数组 asvalues和 sectionTitle as key

sourceArray
(
 dictionaryObject1
 {
 key : sectionTitle,
 value : ( appName1,appName2,appName3)
 },
 dictionaryObject2
 {
 key : sectionTitle,
 value : ( appName1,appName2,appName3)
 },
.
.
.
)
于 2013-09-12T13:37:11.133 回答
0

首先,您的numberOfRowsInSection方法应如下所示:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    NSArray *arrayForSection = appDelegate.sectionArray[section];
    return [arrayForSection count];
}

之后修改cellForRow方法:

NSArray *arrayForSection = appDelegate.sectionArray[indexPath.section]
[AppNameLabel setText:[NSString stringWithFormat:@"%@",[arrayForSection objectAtIndex:indexPath.row]]];
于 2013-09-12T13:21:12.433 回答
0

您需要相应地更新数据源。只需通过枚举您的数组来动态编辑您的数组。就像您添加了一个部分一样,您应该在数组中动态添加部分详细信息。

NSArray *tempArray = [NSArray alloc] initWithArray:sectionArray];
for(int i = index; i<= (sectionArray.count-i-1); i++)
{
   if(i = index){
      [sectionArray replaceObjectAtIndex:i withObject:newSection]
   }
   else
   {
     sectionArray replaceObjectAtIndex:i withObject:[tempArray objectAtIndex: i-1];
   }
}
于 2013-09-12T13:27:38.933 回答