最初に、テーブルビューに 3 つのアイテムをリストする必要があります。
いずれかをクリックすると、選択したメイン アイテムのサブ アイテムとして 3 つ以上のアイテムが表示されます。
私が使用している配列は
aryTemp = [[NSMutableArray alloc] initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"YES", @"isExpand", [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil], @"data", nil], nil];
aryTemp1 = [[NSMutableArray alloc] initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"NO", @"isExpand", [NSArray arrayWithObjects:@"Doc", @"XML", @"PDF", nil], @"data", nil], nil];
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 3;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
int count = 0;
if(!boolIsExpanded)
count = 1;
else {
count = [[[aryTemp objectAtIndex:0] objectForKey:@"data"] count] + [[[aryTemp1 objectAtIndex:0] objectForKey:@"data"] count];
}
return count;
}
-(void)addOrDeleteRows:(NSIndexPath *)indexPath add:(BOOL)aBool
{
NSMutableArray *paths = [[NSMutableArray alloc] init];
if(boolIsExpanded)
{
boolIsExpanded=NO;
for (int i=1; i<=[[[aryTemp1 objectAtIndex:0] objectForKey:@"data"] count]; i++) {
NSIndexPath *indxPath;
indxPath = [NSIndexPath indexPathForRow:(indexPath.row)+i inSection:indexPath.section];
[paths addObject:indxPath];
NSLog(@"paths : %@",paths);
}
intPrevIndex = indexPath.row;
[tblView beginUpdates];
[tblView insertRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationLeft];
[tblView endUpdates];
}
else
{
boolIsExpanded = YES;
for (int i = 1; i <= [[[aryTemp1 objectAtIndex:0] objectForKey:@"data"] count]; i++) {
NSIndexPath *indxPath = [NSIndexPath indexPathForRow:(indexPath.row)+i inSection:indexPath.section];
[paths addObject:indxPath];
}
intPrevIndex = indexPath.row;
[tblView beginUpdates];
[tblView deleteRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationLeft];
[tblView endUpdates];
}
}
この計算はどのように正確に行う必要がありますか?セクションを使用する場合。
行を挿入した後、呼び出しNumberOfRow
てエラー
Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1914.84/UITableView.m:1037 2012-10-03 11:37:43.955 ExpandRowsSample[1657:f803] でクラッシュしますキャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: '無効な更新: セクション 0 の行数が無効です。更新後の既存のセクションに含まれる行数 (6) は、そのセクションに含まれる行数と等しくなければなりません更新前のセクション (1)、そのセクションから挿入または削除された行数 (0 挿入、0 削除) をプラスまたはマイナスし、そのセクションに移動した行数またはそのセクションから移動した行数 (0 移動、0 移動)アウト)。' *