【发布时间】:2018-05-03 12:09:34
【问题描述】:
我在我的应用程序中为UILabel 创建了一个 Swift 子类来管理它在所有视图中的样式,以便以后修改样式更容易。我知道要将字符串转换为大写,我可以使用uppercased() 来实现。
但是,当我在 UILabel 文本属性的子类中使用 uppercased() 或 capitalized 时,问题就出在运行时。奇怪的是它在情节提要上正确呈现(使用@IBDesignable),但在运行时,它显示了未大写的字符串。
比如我在UILabel子类中有一个类似这样的代码:
textColor = ...
font = UIFont(name: "Avenir-Medium", size: 12.0)
text = text!.uppercased()
然后在视图控制器中,我有类似这样的代码:
label_noWeightMessage.text = "No weight logs this week..."
颜色和字体应用正确,但大小写更改除外。我在这里遗漏了什么吗?
在故事板中,文本显示为“本周没有体重记录...” 但在模拟器运行时,它会恢复到原来的情况。
我知道我可以只用大写字母输入文本。但这不是我想要的。我希望能够在所有屏幕上重复使用样式,而无需重新输入所有 UILabel 文本并在一个地方进行更改。
谢谢!
【问题讨论】: