gpt4 book ai didi

ios - 动态增加 UILabel 和 TableView Cell 的高度?

转载 作者:IT王子 更新时间:2023-10-29 05:18:08 25 4
gpt4 key购买 nike

我有一个 UITableView,我在其中显示一个自定义单元格。我的单元格有两个标签和一个 View ,如下图所示。

enter image description here

我已经像这样给出了左 View 的约束

项目标签约束

enter image description here

中心 View 约束

enter image description here

右 View 约束

enter image description here
我正在使用一个 bean 类来存储两个标签的数据并将该 bean 对象添加到一个数组中。我在 heightForRowAtIndexPath 中使用以下代码。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

// Calculate a height based on a cell
if(!self.customCell) {
self.customCell = [self.tableView dequeueReusableCellWithIdentifier:@"thirdcell"];
}

// Configure the cell
Instrument *inst=[arr_instSpecs objectAtIndex:indexPath.row];
self.customCell.label_item.text=inst.item;
self.customCell.label_desc.text=inst.desc;


// Layout the cell

[self.customCell layoutIfNeeded];

// Get the height for the cell

CGFloat height = [self.customCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

// Padding of 1 point (cell separator)
CGFloat separatorHeight = 1;

return height + separatorHeight;
}

问题既不是标签的高度增加,也不是表格 View 单元格的高度增加。我已经解释了一切。我想在标签文本增加时增加标签的大小,并且当标签大小增加时单元格的高度必须增加。

最佳答案

首先你不应该在自动布局环境中手动计算高度。只需将标签 TopSpace 和 BottomSpace 设置为单元格的 contentView,并确保将标签 NumberOfLines 设置为 0 并将 LineBreakMode 设置为 WordWrap。

其他约束如下,

元素标签:

enter image description here

分隔 View :

enter image description here

描述标签:

enter image description here

然后如下添加高度代表,

#pragma mark - UITableView Delegates
-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {

return 44.0;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

return UITableViewAutomaticDimension;
}

你应该得到如下输出,

enter image description here

希望对您有所帮助。

关于ios - 动态增加 UILabel 和 TableView Cell 的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36052361/

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