heightForRowAtIndexPath

heightForRowAtIndexPath

我试图在heightForRowAtIndexPath中调用一个函数,该函数在该单元格内隐藏和显示视图,但是我不情愿地创建了一个无限循环。请指出问题所在以及如何解决。

heightForRowAtIndexPath中的功能

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"indexrow = %ld \n pre = %d\n sel = %d \n",(long)[indexPath row],previousselectedcell,selectedcell);
    if([indexPath row] == previousselectedcell){
        return 60;
    }
    else if ([indexPath row] == selectedcell) {
        NSLog(@"height toggle= %@",toggle);
        [self ViewToggle:tableView IndexPath:indexPath Do:@"true"];
        return 180;
    }
    else
    {
        return 60;
    }
}


功能定义

-(void)ViewToggle:(UITableView *)tableView IndexPath:(id)myindexPath Do:Toggle{
    InterestTableViewCell *cell = (InterestTableViewCell *) [tableView cellForRowAtIndexPath:myindexPath];
    if([Toggle isEqualToString:@"true"]){
        cell.ContainerView.hidden=NO;
    }
    else{
        cell.ContainerView.hidden=YES;
    }
}

最佳答案

问题在这里

InterestTableViewCell *cell = (InterestTableViewCell *) [tableView cellForRowAtIndexPath:myindexPath];


您正在尝试从表中获取单元格。但是仍然没有创建单元。所以您回到单元格创建

heightForRowAtIndexPath不是配置单元格内容的好地方。最好在里面做
tableView:didSelectRowAtIndexPath:
 方法

关于ios - 在heightForRowAtIndexPath中调用函数时发生无限循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30527781/

10-09 09:12