gpt4 book ai didi

ios - UITableViewCell 内的 UILabel 高度

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

我正在尝试创建一个表格 View ,其中单元格的高度是动态的。

到目前为止,我设法根据我在其中添加的自定义 UILabel 设置单元格的高度。

使用常规的 cell.textLabel 它工作正常,但是当我使用我自己的标签时出现问题。我只看到一半的标签,但是当我上下滚动时,有时标签会扩展并显示所有文本...您可以看到标签应该在图像中结束的位置。

Image

这是 cellForRowAtIndexPath 中的文本:

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

// Configure the cell.
Car *carForCell = [cars objectAtIndex:indexPath.row];

UILabel *nameLabel = [[UILabel alloc] init];
nameLabel = (UILabel *)[cell viewWithTag:100];
nameLabel.numberOfLines = 0;
nameLabel.text = carForCell.directions;
[nameLabel sizeToFit];

[nameLabel setBackgroundColor:[UIColor greenColor]];


return cell;

最佳答案

除非您发布的代码中有拼写错误,否则您似乎根本没有将标签添加到单元格中。您似乎每次都在创建一个新标签,然后用单元格的 View (始终为 nil)替换 nameLabel 指针的内容。

先尝试做这样的事情,然后看看效果如何:

static NSString *CellIdentifier = @"Cell";

UILabel *nameLabel;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

nameLabel = [[UILabel alloc] init];
nameLabel.tag = 100;

nameLabel.numberOfLines = 0;
[nameLabel setBackgroundColor:[UIColor greenColor]];

[cell.contentView addSubview:nameLabel];
}
else {
nameLabel = (UILabel *)[cell viewWithTag:100];
}

// Configure the cell.
Car *carForCell = [cars objectAtIndex:indexPath.row];

nameLabel.text = carForCell.directions;
[nameLabel sizeToFit];

return cell;

您还需要使用 tableView:heightForRowAtIndexPath: 委托(delegate)方法告诉 tableView 每个单元格需要的大小。这将意味着再次获取相关的 Car 对象并使用 sizeWithFont:sizeWithFont:forWidth:lineBreakMode:

计算高度

关于ios - UITableViewCell 内的 UILabel 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14778581/

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