在iOS中动态更改TableView单元格高度
在iOS中动态更改TableView单元格高度
这个问题已经有了答案:
嗨,在我的应用程序中,我需要在tablview中显示带有描述的产品。为了实现这一点,我在tablview单元格内容视图上添加了两个satckview。两个stackview都包含标签,一个标签有一个产品名称,另一个标签有描述。在应用程序启动时,默认情况下单元格高度为100,但是每当我选择单元格时,我想在单元格中显示完整的描述,以及产品名称,因此需要更改单元格高度。请问有谁能帮助我如何实现此目标?如何动态更改单元格高度。请帮帮我。
我尝试了以下方法,它在stackview标签中显示更多描述,但单元格高度没有改变。因此无法看到完整的描述。
cell.productDescription.numberOfLines=50; cell.productDescription.lineBreakMode=NSLineBreakByCharWrapping;
admin 更改状态以发布 2023年5月22日
最佳的方法是在应用程序中使用Constraint,这样您就不必管理 heighforCell
。如果您要编写代码部分,那么您需要找到文本的高度,然后需要将其设置在heightForRowAtIndexPath方法中。
以下是从字符串中获取高度的代码:
-(float )getHeightForText : (NSString *)strText { UILabel *lbl = [[UILabel alloc] init]; CGRect rect; rect.origin = CGPointZero; float width = YOUR_LABEL_WIDHT rect.size = CGSizeMake(width, 3000); lbl.font = MESSAGE_TEXT_FONT; lbl.frame = rect; lbl.text = strText; lbl.numberOfLines = 1000; [lbl sizeToFit]; float height = lbl.frame.size.height; return height; }
请在heightForRowAtIndexPath方法中编写以下代码:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return [self getHeightForText:YOUR_TEXT]; }