在 swift 中将可变长度消息的高度设置为 UIlabel 并不总是正确的

Posted

技术标签:

【中文标题】在 swift 中将可变长度消息的高度设置为 UIlabel 并不总是正确的【英文标题】:Set height for a variable length message into a UIlabel in swift is not correct always 【发布时间】:2015-07-12 13:37:00 【问题描述】:

我编写了以下代码行,以便在 swift 中将可变长度消息设置为 UIlabel,这在 10 次中有 9 次正常工作。但有一次它突然截断了消息的最后 2 或 3 行:

var response: AnyObject = prefs.objectForKey("response")!
response = response.stringByReplacingOccurrencesOfString("-", withString: "\n")
msglbl.numberOfLines = 0;
msglbl.text = "\(response)"  

msglbl.textAlignment = .Center;
msglbl.sizeToFit()
self.view.addSubview(msglbl)
msglbl.font = UIFont(name: "Gotham-Book", size: 16)

请让我知道我做错了什么。

【问题讨论】:

【参考方案1】:

您正在调用sizeToFit()设置标签的字体和大小。因此,标签的大小针对 错误 字体和大小。配置标签first的所有内容。 然后调整大小以适应该配置。

【讨论】:

另外,这条线很愚蠢:msglbl.text = "\(response)"。不要将response 输入为AnyObject,而是将prefs.objectForKey("response")! 转换为字符串。因为response文本,那么你就可以写msglbl.text = response matt,如果我将 msglbl.text = 响应代码并在 sizetofit 之前设置标签的字体,它可以解决问题吗?

以上是关于在 swift 中将可变长度消息的高度设置为 UIlabel 并不总是正确的的主要内容,如果未能解决你的问题,请参考以下文章

为一个元素设置长度(高度或宽度)减去另一个元素的可变长度,即 calc(x - y),其中 y 未知

如何在 Swift 中将内容包装为自定义视图

Swift UI设置制作矩形正方形

Swift:使用 prepareForSegue 将 UIView 容器的高度设置为嵌入式 UITableView 的高度

如何为可变长度有效负载格式化 NDEF 消息?

UITableView 单元格的动态高度问题(Swift)