gpt4 book ai didi

IOS计算自定义单元格的tableview行高

转载 作者:行者123 更新时间:2023-11-29 12:32:44 25 4
gpt4 key购买 nike

我有一个在每个屏幕上都使用表格 View 的应用程序。我有很多自定义单元格,每个单元格都有不同的高度。现在计算高度是一个很大的挑战。我正在寻找一种通用方法,该方法无需使用 heightForRowAtIndex 即可返回每个自定义单元格的高度。我不想使用 heightForRowAtIndex 的原因是因为我在一个单元格后面有 4 个 xib,我不想用 if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ) {} 种检查来混淆这个方法.为了记录,单元格 xibs 都是 iPhone、iPad 的英语和阿拉伯语版本:
cell_en.xib
cell_zh~ipad.xib
cell_ar.xib
cell_ar~ipad.xib

目前,我正在尝试关注;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath            {                switch (indexPath.row) {                case 0:                {                    VPCell1 *cell=[VPCell1 cellForTable:tableView withOwner:self];                    [tableView setRowHeight:CGRectGetHeight(cell.contentView.frame)];                    return cell;                }                case 1:                {                    VPCell2 *cell=[VPCell2 cellForTable:tableView withOwner:self];                    [tableView setRowHeight:CGRectGetHeight(cell.contentView.frame)];                    return cell;                }                case 2:                {                    VPCell3 *cell=[VPCell3 cellForTable:tableView withOwner:self];                    [tableView setRowHeight:CGRectGetHeight(cell.contentView.frame)];                    return cell;                }          }    }

我在这里使用[tableView setRowHeight:CGRectGetHeight(cell.contentView.frame)];为每个单元格设置行高。
事实证明应该使用 setRowHeight 方法,当且仅当 tableview 中的所有单元格都具有相同的高度,所以这里绝对不是性能优化的选择。我愿意接受解决这个烂摊子的想法。
谢谢!

最佳答案

如果一个 tableview 的所有单元格都具有相同的高度,那么您可以设置 tableview rowHeight,但只在加载 tableview 时设置一次,比方说在 Controller viewDidLoad 中。

如果同一个 tableView 中有不同高度的单元格,则必须使用 heightForRowAtIndexPath。不,这并不痛苦,这只是它的设计方式。

关于IOS计算自定义单元格的tableview行高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com