UILabel 不显示整个文本

Posted

技术标签:

【中文标题】UILabel 不显示整个文本【英文标题】:UILabel not showing entire text 【发布时间】:2021-03-10 02:55:43 【问题描述】:

我有一个集合视图单元格,它有一个按钮和一个标签。因此,每当我在集合视图上添加项目时,都会显示多对按钮和标签,即 button1-label1,然后在 label1 和 button2 之间有一些空间后显示 button2-label2。

每当我为标签分配一些文本时,它只会显示标签上文本的前 2 个字母。我尝试增加标签的宽度,在标签上设置文本后调用'sizeToFit()'和'layoutIfNeeded()',但仍然没有变化。

我做错了什么?

标签框为 - (34.0, 10.0, 100.0, 16.0)

集合视图布局 API:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat 
    return 100


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat 
    return 100


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets 
    return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 25)

以下是标签设置

【问题讨论】:

【参考方案1】:

tech_human,你的 UI 是如何布局的,标签旁边的按钮是什么?

如果是,则将按钮放在标签下方,并将尾随对齐约束设为Less than or Equal to 关系。

【讨论】:

【参考方案2】:

我花了一些时间检查所有内容的 frame.width 值,并注意到即使标签的框架更大,实际集合视图单元格的 frame.width 小于标签的 frame.width。以下是解决方案:

collectionViewCell.frame.size.width = collectionViewCell.label.frame.width + collectionViewCell.button.frame.width + 25

上述解决方案中的 25 代表“minimumInteritemSpacingForSectionAt”,我将其从 100 更改为 25。

【讨论】:

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

限制 VoiceOver 从 UILabel 读取的文本

每次单击按钮后,如何在 UILabel 上逐一显示文本?

NGUI如何让uilabel框大小随文字增加而变化

UILabel 不显示所有内容

UILabel.attributedText 不显示在 iPhone 4 + iOS 7.0.3

UILabel.attributedText 不显示在 iPhone 模拟器上(但适用于 iPad 模拟器)