当试图让动态创建的 UILabel 换行时,文本消失

When trying to get dynamically created UILabel to wrap, text disappears

我正在尝试显示一些从几个字到一百个字不等的描述文本。我已经将我的 UILabel 设置为换行以使用下面的代码进行补偿

    descText.frame = CGRect(x: 115, y: 160, width: 465, height: 21)     
    descText.textAlignment = NSTextAlignment.Left
    descText.numberOfLines = 0
    descText.lineBreakMode = NSLineBreakMode.ByWordWrapping
    descText.sizeToFit()
    descText.Text = text
    dtlView.addSubview(descText)

如果我删除 descText.sizeToFit(),文本会重新出现但不会换行,如果我尝试将 CGRect 中的高度设置为 CGFloat.max,也会发生同样的情况。

我错过了什么?

使用 ByCharWrapping 而不是使用 ByWordWrapping

还要确保仅在分配文本后才调用 sizeToFit()

descText.lineBreakMode = NSLineBreakMode.ByCharWrapping
descText.Text = text
descText.sizeToFit()

分配文本后更改 sizeToFit() 的位置完成了上面 Bartlomiej 所建议的工作