React Native Expo 自定义字体权重在 iOS 设备上不起作用
Posted
技术标签:
【中文标题】React Native Expo 自定义字体权重在 iOS 设备上不起作用【英文标题】:Reat Native Expo custom fontWeight doesn't work on iOS device 【发布时间】:2018-07-16 03:01:49 【问题描述】:我根据博览会网站加载了 open-sans-regular 字体:
async componentDidMount()
await Font.loadAsync(
'open-sans-regular': require('assets/fonts/OpenSans-Regular.ttf')
)
this.setState( fontLoaded: true )
当我在文本上应用以下样式时,它适用于 Android 设备,但不适用于 iOS 设备。我是否遗漏了什么或者我需要加载“open-sans-bold”并使用 fontFamily 属性?
<Text style= fontWeight: 'bold' >Testing</Text>
【问题讨论】:
【参考方案1】:要使用该字体,您还需要安装粗体字体...
await Font.loadAsync(
'open-sans-regular': require('assets/fonts/OpenSans-Regular.ttf'),
'open-sans-bold': require('assets/fonts/OpenSans-Bold.ttf'),
)
并确保您在样式中声明 fontFamily
<Text style= fontFamily: 'open-sans-bold', fontSize: 56 >
Hello, world!
</Text>
更多信息,请参阅Using Custom Fonts in Expo Docs:
【讨论】:
感谢您的回复。我知道我可以使用 fontFamily,但问题是我可以使用 fontWeight 属性来实现相同的目标。它确实适用于android设备,当我将fontWeight设置为粗体时,文本将变为粗体,但它对iPhone没有任何影响。 是的,我认为这也应该有效,但可能使用该特定字体的“粗体”枚举存在问题。您是否尝试过一个数值,比如 900?enum('normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')
(请参阅fontWeight 的文档)以上是关于React Native Expo 自定义字体权重在 iOS 设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 expo/react-native 应用程序中添加自定义节点模块?
React Native - Expo:fontFamily 'SimpleLineIcons' 不是系统字体,尚未通过 Font.loadAsync 加载