gpt4 book ai didi

ios - 根据调整大小标签调整 UITableViewCell 高度

转载 作者:行者123 更新时间:2023-11-29 01:15:58 25 4
gpt4 key购买 nike

我有一个自定义的 UITableViewCell。在 UITableViewCell 的 contentView 中,我添加了一个 UIButton,在按钮下方有一个 UILabel(Button 和 UILabel 是彼此的 sibling )。

开始时 UILabel 上没有文本,因此它的高度约束设置为 >= 0。但是当我点击按钮时,我设置了 UILabel 的文本属性,并且它应该变得可见。换句话说,我想扩展 UILabel 的高度,也应该扩展 UITableViewCell 的高度。

我已将 UIButton Top,LeadingTrailing 边缘固定到 UITableViewCell contentView 同样,我已将 UILabel 的 Bottom,LeadingTrailing 边缘固定到 UITableViewCell contentsView。

现在的问题是,当我点击 UITableViewCell 时,它不会调整 UILabel 的大小,也不会调整 UITableViewCell

这是我的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


MYCustomCell *cell = (MYCustomCell *) [tableView cellForRowAtIndexPath:indexPath];
cell.descriptionLbl.text = @"This is my text";
[cell layoutSubviews];
}

同理

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {

MYCustomCell *cell = (MYCustomCell *) [tableView cellForRowAtIndexPath:indexPath];
cell.descriptionLbl.text = @"";
[cell layoutSubviews];
}

这是我的自定义单元格的 layoutSubViews

- (void) layoutSubviews {
[super layoutSubviews];

self.descriptionLbl.preferredMaxLayoutWidth = CGRectGetWidth(self.contentView.bounds);
self.descriptionLbl.numberOfLines = 0;
[self.descriptionLbl sizeToFit];
if (self.descriptionLbl.text.length > 0){
self.descriptionLbl.frame = CGRectMake(self.descriptionLbl.frame.origin.x, self.descriptionLbl.frame.origin.y, self.descriptionLbl.frame.size.width, 50); // Here the size will be calculated more accurately later
}
}

请注意,我没有在任何地方设置 UITableViewCell 的高度。

最佳答案

在您的情况下,您必须在只有按钮可见且单击文本后可见时手动管理自动布局约束。我已经为此准备了一个演示,您可以在此处找到。

https://github.com/rushisangani/TableViewCellExpand

请引用 TableViewCell 的 Storyboard约束并明智地管理它。

关于ios - 根据调整大小标签调整 UITableViewCell 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35176826/

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