gpt4 book ai didi

iphone - UILabel 与 -[sizeWithFont :constrainedToSize:lineBreakMode] is cutting off words

转载 作者:行者123 更新时间:2023-12-03 20:21:08 28 4
gpt4 key购买 nike

UILabel 位于 UITableViewCell 内。点击单元格时,高度会扩展,并且会出现第二个 UILabel,其中包含不同数量的数据。

问题是,如果换行,sizeWithFont:constrainedToSize:lineBreakMode:不会返回正确的高度并切断底线。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
labelExpanded = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
labelExpanded.font = [UIFont boldSystemFontOfSize:11];
labelExpanded.textAlignment = UITextAlignmentLeft;
labelExpanded.lineBreakMode = UILineBreakModeWordWrap;
labelExpanded.numberOfLines = 0;
[cell.contentView addSubview:labelExpanded];

CGSize constraint = CGSizeMake(300, 20000);
CGSize size = [expandedDetails sizeWithFont:[UIFont boldSystemFontOfSize:11] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

[labelExpanded setText:expandedDetails];
[labelExpanded setFrame:CGRectMake(16, 30, 248, size.height)];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(// Row is Expanded)
{
CGSize constraint = CGSizeMake(300, 20000);
CGSize size = [sameTextAsLabel sizeWithFont:[UIFont boldSystemFontOfSize:11] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

// I found +8 to height added nice padding
CGFloat height = size.height + 8;
}
else // Row is not expanded
return 30;
}

相同的文本被输入到两者中,它由一个带有多个换行符的字符串\n组成。如果行长于宽度,自动换行会完成其工作,但在计算其动态高度时,它无法包含换行。

如果我向 [labelExpanded setFrame:height] 添加任何值,例如 [size.height + 30],我的换行就会显示出来。但是,如果该行未换行,则会添加不必要的空格。

我一直无法在网上找到解决方案。

最佳答案

我注意到的一件事是,您是根据宽度 300 计算尺寸,但将标签尺寸调整为 248。

关于iphone - UILabel 与 -[sizeWithFont :constrainedToSize:lineBreakMode] is cutting off words,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5439507/

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