尝试展开UITableView中的部分,如果单个部分展开并关闭,那么它的确定,但如果一个部分展开,那么另一个不关闭先前它会崩溃。 以下是我正在尝试的代码。展开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).'
我没有得到更新之前有一个行,并在第2部分更新两个之后。 –
检查我的aedit,似乎你在'numberOfRowsInSection'的逻辑返回2.我会设置一个断点,并看到如果该if/else被正确输入 – Aaron