在 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:使用 prepareForSegue 将 UIView 容器的高度设置为嵌入式 UITableView 的高度