gpt4 book ai didi

ios - UITableViewCell 中的 UILabel 高度变化仅发生在第二次滚动中

转载 作者:行者123 更新时间:2023-11-29 02:51:17 24 4
gpt4 key购买 nike

最奇怪的事情......

我在 UITableViewCell 中有一个 UILabel ,它根据文本内容自动更改高度。我设法让它工作 - 但只有在我第二次滚动时。当我向下滚动时,文本被截断为 1 行。当我向上和向下滚动时,单元格是完美的。

怎么会这样?

代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CommentCell *cell = (CommentCell *)[tableView dequeueReusableCellWithIdentifier:@"CommentCell"];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CommentCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}

if ([commentsArray count] == 0)
{
return nil;
}

CommentDataItem *commentItem = [commentsArray objectAtIndex:indexPath.row];

[cell.commentText setNumberOfLines:0];
[cell.commentText setText:commentItem.text];
NSDictionary *attributes = @{NSFontAttributeName: cell.commentText.font};
CGRect rect = [cell.commentText.text boundingRectWithSize:CGSizeMake(cell.commentText.frame.size.width, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attributes
context:nil];
CGRect labelFrame = cell.commentText.frame;
labelFrame.size.height = rect.size.height;
cell.commentText.frame = labelFrame;
[cell.commentText sizeToFit];
return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CommentDataItem *commentItem = [commentsArray objectAtIndex:indexPath.row];
NSString *commentText = commentItem.text;

NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue" size:17]};
CGRect rect = [commentText boundingRectWithSize:CGSizeMake(267, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attributes
context:nil];
return rect.size.height + 50;
}

说明情况的截图:
第一次向下滚动时,我看到的是:
http://imgur.com/IFufIjR,utPdU0d

当我向上和向下滚动时,这就是我得到的结果(请注意,有些评论现在应该有不止一行)
http://imgur.com/IFufIjR,utPdU0d#1

最佳答案

显然,虽然我认为我检查过它 - 单元格确实有自动布局(在 xib 文件中) - 删除它后。一切都很棒!

如果有人遇到同样的问题,请在此留下问题

关于ios - UITableViewCell 中的 UILabel 高度变化仅发生在第二次滚动中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24491280/

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