【问题标题】:Reat Native Expo custom fontWeight doesn't work on iOS deviceReact Native Expo 自定义字体权重在 iOS 设备上不起作用
【发布时间】: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>

【问题讨论】:

    标签: ios reactjs react-native expo


    【解决方案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 的文档)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 2015-11-29
    • 1970-01-01
    相关资源
    最近更新 更多