UITableView でセクションを展開しようとすると、単一のセクションが展開されて閉じられた場合は問題ありませんが、セクションが展開された場合、前のセクションを閉じずに別のセクションがクラッシュします。以下は私が試している私のコードです。
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(!helpOn)
return 1;
else
if(section == selectedCellIndexPath)
{
return 2;
}
else{
return 1;
}
return 1;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CellIdentifier";
UITableViewCell *cell;
cell = [self.mHelpTable dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
else{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
UILabel *txtQues = [[UILabel alloc]initWithFrame:CGRectMake(5, 5, 310, 30)];
txtQues.backgroundColor = [UIColor clearColor];
txtQues.lineBreakMode = NSLineBreakByWordWrapping;
txtQues.numberOfLines = 2;
txtQues.userInteractionEnabled = FALSE;
UITextView *txtAns = [[UITextView alloc]initWithFrame:CGRectMake(5, 10, 310, 60)];
txtAns.backgroundColor = [UIColor clearColor];
txtAns.userInteractionEnabled = FALSE;
txtQues.font = [UIFont fontWithName:@"Helvetica-Bold" size:13.0];
if(!helpOn)
//if (indexPath.section==selectedCellIndexPath)
{
if(indexPath.row == 0)
[cell.contentView addSubview:txtQues];
txtQues.text = [self.mArrQues objectAtIndex:indexPath.section];
}
else
{
if(indexPath.row == 0)
{
[cell.contentView addSubview:txtQues];
txtQues.text = [self.mArrQues objectAtIndex:indexPath.section];
}
else{
[cell.contentView addSubview:txtAns];
txtAns.text = [self.mArrAns objectAtIndex:indexPath.section];
}
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
helpOn = !helpOn;
int ind = indexPath.section;
if(ind == selectedCellIndexPath)
{
}
else{
helpOn = YES;
}
if(helpOn)
{
selectedCellIndexPath = indexPath.section;
[self.mHelpTable reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationFade];
}
else
{
if(indexPath.row == 0)
{
//selectedCellIndexPath = indexPath.section;
[self.mHelpTable reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationFade];
}
}
}
上記のガイドをお願いします。ここですでに夕方と朝を過ごしました。セクション メソッドの行数でクラッシュします。以下はエラー取得です。
Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (2) must be equal to the number of rows contained in that section before the update (1), plus or minus the number of rows inserted or deleted from that section (0 inserted, 0 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out).'