gpt4 book ai didi

ios - UILabel sizeToFit 仅适用于关闭自动布局的情况

转载 作者:行者123 更新时间:2023-12-01 19:43:09 25 4
gpt4 key购买 nike

所以我正在使用 iOS 6 制作一个应用程序,并且想知道为什么我的代码曾经在 iOS 5 上运行良好,但现在不再运行了。我有一个带有动态 UILabel 的单元格,它会根据它所携带的文本进行调整。

这是打开自动布局的情况:

enter image description here

这是关闭自动布局的情况:

enter image description here

这是我的代码:

- (CGFloat)heightForText:(NSString *)bodyText
{

#define FONT_SIZE 13.0f
#define CELL_CONTENT_WIDTH 280.0f
#define CELL_CONTENT_MARGIN 5.0f

CGSize constraintSize = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize labelSize = [bodyText sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
CGFloat height = MAX(labelSize.height, 36.0f);
// NSLog(@"height=%f", height);
return height + (CELL_CONTENT_MARGIN * 2);

}



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

NSInteger section = [indexPath section];

switch (section) {


case 0:
if ([self.text.text length]!=0)
{
return [self heightForText:self.text.text];
}
else if ([self.link.text length]!=0)
{

return 60.0f;

}
}

最佳答案

您显示的代码很好,问题很可能出在您单元格内标签上的限制(您没有显示)。

您的标签需要有约束,以使其与其 super View 的每个边缘保持固定距离。情况可能已经如此 - 如果是这样,现在的问题是标签不知道如何换行 - 您还需要在标签上设置 preferredMaxLayoutWidth

我发现 DCIntrospect 等工具在调试自动布局问题时非常有用。例如,在这种情况下,很难判断这是一个尺寸正确但未换行的标签,或者该标签是否不够高而无法正确显示您的内容。

关于ios - UILabel sizeToFit 仅适用于关闭自动布局的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14922803/

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