gpt4 book ai didi

ios - UITableView 决定单个行高

转载 作者:行者123 更新时间:2023-11-28 20:16:19 25 4
gpt4 key购买 nike

我有一个带有自定义标题部分和单元格的表格 View 。我已经创建了我的模型,现在模型保留了对剖面 View 标题的引用,这是“糟糕”的设计,但实际上我只是遵循了苹果的示例代码。好吧,我的单元格有一个标签,可以容纳多行数据,因此应该调整它的大小,以便每一行都可见。我想这将是 Controller 的工作,heightForRowAtIndexPath 对吗?事实上,从那里检索单元格并从那里获得它的高度并不困难。但是,对于尚未创建单元格的事实,这是不可能的。 (如果我错了请纠正我)

我能想到的唯一可行的方法是在我的模型中引用单元格,是的,我知道,坏公民。但这样我就可以很容易地达到我需要的高度。

另一种方法是创建一个使用 sizeWithAttributes: 计算高度的方法,但这似乎确实是一个糟糕的设计,因为我不应该知道我的 View 外观。

我是否在这里监督一些基本的事情?或者它就是这样。

我没有附上任何代码,因为我不知道您想要什么,但请随时让我插入一些代码。

最佳答案

您不需要调用 cellForRowAtIndexPath 来获得指定的结果。我相信您正在使用数组字典数组 来保存内容,

让数组成为

   NSArray *arrData = [[NSArray alloc]init];

现在,在

**heightForRowAtIndexPath**
{
if ( [[arrData objectAtIndex:indexPath.row].length] < 30 )
return 40; // Initial height
else if ( [[arrData objectAtIndex:indexPath.row].length] > 30 )
return 60; // Or any other value as per your need

}

这将调整单元格的高度,具体取决于该单元格内字符串的长度。并且,在 cellForRowAtIndexPath使用

[cell.lblText setFrame:CGRectMake(0,0,cell.frame.size.width, cell.frame.size.height)];

//如果你想让它更有活力

heightForRowAtIndex中写入

{
int _iCount = [[self.arrData objectAtIndex:indexPath.row].length] % 40;

if ( _iCount == 0 )
return 40;
else
return 40*_iCount;
}

这会解决它。

关于ios - UITableView 决定单个行高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17989281/

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