我更喜欢用代码而不是使用IB创建接口,但是我无法更改创建的UITextView的字体大小。什么都没做。为了尝试调试该问题,我使用IB将UITextView添加到了主视图中,以查看它是否起作用-并且确实如此。奇怪的是,以编程方式创建的版本也可以使用,但是仅当IB版本在视图上时才起作用。删除后,以编程方式创建的版本就会停止工作-字体大小不会改变。
使用特征,我实际上可以关闭IB创建的版本,以便不安装它,因此它永远不会出现,这仍然允许以编程方式创建的版本正常工作。
还有其他人看到吗?在IB中拥有一个随机元素并不是世界末日,但它令人沮丧,并且这种事情将来很难解释/调试。
fullWidthDetailText.isEditable = true
fullWidthDetailText.isSelectable = true
fullWidthDetailText.font = UIFont(name: "Roboto", size: 50)
fullWidthDetailText.adjustsFontForContentSizeCategory = false
fullWidthDetailText.text = "Hello world"
fullWidthDetailText.backgroundColor = UIColor.clear
fullWidthDetailText.textColor = UIColor.white
fullWidthDetailView.addSubview(fullWidthDetailText)
答案 0 :(得分:2)
字体名称可能不正确。我希望它类似于"Roboto-Regular"
,但绝对可以肯定,将所有可用字体的名称打印到控制台上,然后找到所需的字体:
for family in UIFont.familyNames.sorted() {
print("\(family): ", UIFont.fontNames(forFamilyName: family).sorted().joined(separator: ", "))
}
有关详细信息,请参见How to check if a font is available in version of iOS?。
请注意,字体名称通常不是用户友好的,Interface Builder实际上会显示字体系列。
如果您仍然遇到问题,请参阅Adding a Custom Font to Your App 并确认您已正确完成所有操作。
答案 1 :(得分:0)
大多数iOS设备上未安装Roboto。那是传统的Android字体,而不是iOS字体。因此UIFont(name: "Roboto", size 50)
返回nil。如果您选择在iOS上安装的字体(例如Helvetica,它与Roboto非常接近),那么我将无法重现此问题。文本按预期以50pt字体显示。同样,.systemFont(ofSize: 50)
似乎可以正常工作。