OStack程序员社区-中国程序员成长平台

标题: ios - 设置包含动态单元格高度的 UITableView 的高度 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 13:17
标题: ios - 设置包含动态单元格高度的 UITableView 的高度

我已将 UITableView 放入 UIScrollView 现在我想将静态高度设置为 tabelview 并将 contentSize 设置为ScrollView 因为 UITableView 每次滚动 tableview 时都会调用 cellForRowAtIndexPath

我正在使用下面的代码动态设置 tableviewcell 大小。

现在的问题是:如何以及在何处将总高度设置为 tableview 并将内容大小设置为我的 scrollview

-(CGFloat)tableViewUITableView *)tableView heightForRowAtIndexPathNSIndexPath *)indexPath
{
    NSMutableDictionary *itemDataDic = [resultArray objectAtIndex:indexPath.row];
    UIFont *cellFont = [UIFont fontWithName"Helvetica" size:15.0];
    CGSize constraintSize = CGSizeMake(275.0f, MAXFLOAT);
    CGSize labelSize = [[itemDataDic objectForKey"offer_title"] sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];

    if (labelSize.height > 30.00f)
    {
        totalHeight = totalHeight + 325;
        return 325;
    }
    else
    {
        totalHeight = totalHeight + 306;
        return 306;
    }
}



Best Answer-推荐答案


'heightForRowAtIndexPath'为一个单元格调用了很多次,因此totalHeight计算错误。

您需要在初始化时计算表格的高度以及数据何时更改。

-(void) reloadAndResizeTable
{
    CGFloat totalHeight = .0f;
    for (NSMutableDictionary* itemDataDic in resultArray) {
        UIFont *cellFont = [UIFont fontWithName"Helvetica" size:15.0];
        CGSize constraintSize = CGSizeMake(275.0f, MAXFLOAT);
        CGSize labelSize = [[itemDataDic objectForKey"offer_title"] sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];

        if (labelSize.height > 30.00f)
        {
            totalHeight = totalHeight + 325.0f;
            return 325;
        }
        else
        {
            totalHeight = totalHeight + 306.0f;
            return 306;
        }
    }
    CGRect frame = [yourTableView frame];
    [yourTableView setFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, totalHeight)];
    [yourTableView reloadData];
}

关于ios - 设置包含动态单元格高度的 UITableView 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34627490/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4