UIlabel 大小以适应意外行为

Posted

技术标签:

【中文标题】UIlabel 大小以适应意外行为【英文标题】:UIlabel Sizetofit unexpected behavious 【发布时间】:2017-11-09 21:50:25 【问题描述】:

我的 UIlabel sizeToFit() 方法遇到了意外行为。现在我尝试制作numberOfLines = 0,我的事件称为LayoutIfNeed()。但它们都不起作用。

我什至尝试了这个问题中给出的方法:Vertically align text to top within a UILabel

但再一次没有帮助。我没有太多限制,我只是使用自动调整大小的引脚。我什至在没有限制或没有自动调整大小的情况下尝试了它。

我在 TableViewCell 和 CollectionReusableView 中设置了这个标签。在awakeFromNib() 中调用它不会影响。

UIcollectionReusableView 代码:

override func awakeFromNib() 
    super.awakeFromNib()


    label.sizeToFit()

    label.numberOfLines = 0
    label.layer.shadowOffset = CGSize(width: 0, height: 0)
    label.layer.shadowOpacity = 3
    label.layer.shadowRadius = 8


约束:

TableViewCell 代码:

override func layoutSubviews() 
    super.layoutSubviews()

// this is the UIview on which the label is put on.
    contentView.layoutIfNeeded()




override func awakeFromNib() 
    super.awakeFromNib()
    // This is the label has the issue
    caption.sizeToFit()


约束:

另外,文本视图中的标签与另一个标签堆叠在一起,stackview 约束是:

示例如下:

它似乎不起作用。我完全不知道。

非常感谢任何帮助。

【问题讨论】:

发布您正在使用的实际代码,以便有人可以帮助您。这里没有足够的信息来提供任何有意义的建议。 更新问题。需要更多信息吗? 您还可以发布您是如何创建标签的吗?你是在使用故事板还是在代码中创建它? @NevinJethmalani 我已经在情节提要本身中创建了标签。我只是在这里定义属性。要我发布属性的屏幕截图吗? 为什么要调用 sizeToFit()?你在标签中设置文本之前调用 sizeToFit() 吗?单元格之间的文本是否有所不同? 【参考方案1】:

你需要在文本添加到标签之后调用 sizeToFit(),而不是之前。

【讨论】:

以上是关于UIlabel 大小以适应意外行为的主要内容,如果未能解决你的问题,请参考以下文章

调整 UILabel 的大小以适应插图

如何调整字体大小以适应 UILabel 的高度和宽度

为啥在 Interface Builder 中更改字体大小会阻止 UILabel 调整大小以适应内容?

调整UILabel的大小以适应Word Wrap

调整UILabel的大小以适应字体大小和文本

调整文本大小以适应宽度(1行标签)后,如何在 UILabel 中垂直和水平居中?