UILabel 不显示所有内容

Posted

技术标签:

【中文标题】UILabel 不显示所有内容【英文标题】:UILabel not displaying everything 【发布时间】:2016-04-01 16:59:51 【问题描述】:

我对这个很迷茫。

这是镜头:

Tea's Tea Matcha 的价格被砍掉了。我根本不知道为什么。

我正在使用 boundingRectWithSize:...

当我在调用 layoutIfNeeded 后记录标签框架的高度时,它是每个相应框架的高度:与 boundingRect.size.height 相同的高度。

另外,当我记录标签的文本时,价格在日志中,所以它也不是。

只有这个和数百个其他标签存在此问题,我不知道为什么。

这是我设置标签高度的代码:

CGRect boundingRect = [self.nameLabel.attributedText boundingRectWithSize:CGSizeMake(self.frame.size.width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin context:nil];

self.nameLabelHeightConstraint.constant = ceil(boundingRect.size.height);
[self layoutIfNeeded];

我注意到的一件事 - 如果我不是使用 boundingRect 计算高度并手动设置它,而是在标签上使用 sizeToFit,它有同样的问题,但如果我滚动过去并返回它,它是固定的并且价格显示在下方。

有人知道这里发生了wtf吗?

【问题讨论】:

你试过 sizeToFit 吗? 你看我的问题了吗?我已经说过我试过了。当我使用 sizeToFit 时,它一开始并不能解决问题,但如果我滚动过去令人不安的行并返回到它,它就会得到修复。 你能显示更多代码吗?你在集合视图上使用它吗? 是的,它是一个集合视图。不知道还有什么代码要显示。你有什么特别想看的吗?如果这很重要,我正在使用自动布局。 ***.com/a/13032251/2164705看看这个 【参考方案1】:

我发现我可以通过更改默认高度约束常量来解决这个问题。我显着降低了它(它足够大以至于它接触到 Cell.xib 视图的底部。我将它与上面的视图间隔了 1 个像素,降低了 IB 中的默认高度约束常量并将类型从等于大于或等于。这些东西结合起来(我不确定是哪个,如果不是全部)似乎已经解决了这个问题。

【讨论】:

以上是关于UILabel 不显示所有内容的主要内容,如果未能解决你的问题,请参考以下文章

UILabel标签文字过长时的显示方式

在 UILabel 上显示 iPhone 剪切复制粘贴菜单

UITableViewCell 不显示 UILabel

UITableViewCell 不显示内容

为啥这个自定义 UIView 代码不显示 UILabel 的?

自定义 UIView 不显示任何内容