我正在使用 Xcode 9.x,想在 InterfaceBuilder 中的 UILabel 上使用富文本。
我想设置:系统字体(San Francisco)和一些粗体样式。但是它不起作用(斜体可以,但粗体不行...)。
除非我在 Xcode 项目中导入所有 San Francisco 字体(但它非常大:15Mb!),否则我无法选择系统字体(San Francisco Pro / Display)
请问如何使其工作?谢谢。
我正在使用 Xcode 9.x,想在 InterfaceBuilder 中的 UILabel 上使用富文本。
我想设置:系统字体(San Francisco)和一些粗体样式。但是它不起作用(斜体可以,但粗体不行...)。
除非我在 Xcode 项目中导入所有 San Francisco 字体(但它非常大:15Mb!),否则我无法选择系统字体(San Francisco Pro / Display)
请问如何使其工作?谢谢。
我能够在界面构建器中(某种程度上)通过直接编辑XML的方式轻松完成。设置所需的带属性字符串,然后查找<font />
并按照您的意愿进行编辑。例如,我的按钮使用系统粗体字体。现在,在IB中显示该字体,既适用于属性,也适用于属性字符串的可视化呈现。我可以更改大小,同时保持粗体字。
<font key="NSFont" size="16" name=".AppleSystemUIFontBold"/>
这是上下文:
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="wordWrap" hasAttributedTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1mt-rM-2b8">
<rect key="frame" x="211" y="8" width="187" height="52"/>
<color key="backgroundColor" red="0.0" green="0.41960784309999999" blue="0.72156862749999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<inset key="contentEdgeInsets" minX="4" minY="16" maxX="4" maxY="16"/>
<state key="normal">
<attributedString key="attributedTitle">
<fragment content="Okay, I'll fill it out now">
<attributes>
<color key="NSColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<font key="NSFont" size="16" name=".AppleSystemUIFontBold"/>
</attributes>
</fragment>
</attributedString>
</state>
<connections>
...
</connections>
</button>
<font key="NSFont" metaFont="systemBold"/>
,还有 system
、systemMedium
等等。至少在 Xcode 11.4 中我是这样看到的。 - mojubaclass EnclosingViewSubclass : UIView {
// The outlet you create for the label
@IBOutlet weak var styledLabel: UILabel!
// ...
override func awakeFromNib() {
super.awakeFromNib()
// setting the label's font face to the system font, including picking
// up the font-size you establish in InterfaceBuilder
styledLabel.font = UIFont.systemFont(ofSize: styledLabel.font.pointSize,
weight: UIFontWeightBold)
}
}
UIFont.systemFont(ofSize:)
。 - Tamás Sengel