0

UITableView を下にスクロールしようとすると問題が発生します。セルはプロトタイプ カスタム セルです。アコーディオン方式でセルを拡張しようとしています。アコーディオンを実装したリンクは次のとおりです。カスタムセルを追加しました。

http://www.cocoanetics.com/2011/03/expandingcollapsing-tableview-sections/

どうもありがとうございました。

これが私のコードです:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"Celda"];

if ([self tableView:tableView canCollapseSection:indexPath.section])
{       
    if (!indexPath.row)
    {
        cell.name.text = [category objectAtIndex:indexPath.section]; 
    }
    else
    {
        cell.name.text = [(Local *)[filteredArray objectAtIndex:indexPath.row] nombreLocal];
    }
}
else
{
    cell.name.text = [category objectAtIndex:indexPath.section];

}   
return cell;
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

if ([self tableView:tableView canCollapseSection:indexPath.section])
{
    if (!indexPath.row)
    {
       [tableView deselectRowAtIndexPath:indexPath animated:NO];

        NSInteger section = indexPath.section;
        BOOL currentlyExpanded = [expandedSections containsIndex:section];
        NSInteger rows;

        NSMutableArray *tmpArray = [NSMutableArray array];

        if (currentlyExpanded)
        {
            rows = [self tableView:tableView numberOfRowsInSection:section];
            [expandedSections removeIndex:section];

        }
        else
        {
            [expandedSections addIndex:section];
            rows = [self tableView:tableView numberOfRowsInSection:section];
        }

        for (int i=1; i<rows; i++)
        {
            NSIndexPath *tmpIndexPath = [NSIndexPath indexPathForRow:i inSection:section];
            [tmpArray addObject:tmpIndexPath];
        }

        if (currentlyExpanded)
        {
            [tableView deleteRowsAtIndexPaths:tmpArray withRowAnimation:UITableViewRowAnimationNone];
        }
        else
        {
            [tableView insertRowsAtIndexPaths:tmpArray 
                              withRowAnimation:UITableViewRowAnimationNone]; 
        }
       }
      }
    }
4

1 に答える 1

0

HelmiB 私は自分のコードをここに置きます:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if ([self tableView:tableView canCollapseSection:section])
    {
        if ([expandedSections containsIndex:section])
        {
        return [filteredArray count]; 
        }      
        return 1;
    }
return 1;
}
于 2012-08-29T05:03:52.540 に答える