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];
}
}
}
}