如何在 React Native for IOS 应用程序中禁用字体缩放?

新手上路,请多包涵

设备字体大小的放大有时会中断(样式方面)。

原文由 A-J-A 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 850
2 个回答

对于 React 本机 0.58+

最好保持字体缩放,但您可以通过使用 Text new prop maxFontSizeMultiplier 来限制它

对于 React native 0.56+ 使用 Levi’s answer

 Text.defaultProps = Text.defaultProps || {};
Text.defaultProps.allowFontScaling = false;

对于 React 本机 0.55 及更低版本

添加 Text.defaultProps.allowFontScaling=false 在应用程序的开头(例如 main.js 或 app.js 等),以将此道具应用于整个应用程序的所有文本组件。

原文由 A-J-A 发布,翻译遵循 CC BY-SA 4.0 许可协议

禁用字体缩放可能会损害您的应用程序的可访问性,理想情况下,如果您想限制使用 React 本机 0.58.0 及更高版本的应用程序的缩放;在特定的 Text 组件上使用 maxFontSizeMultiplier 道具

但是,如果您绝对想在整个应用程序中禁用字体缩放,您可以通过在 defaultPropsText 中全局设置 allowFontScaling 属性来实现。

您应该在 --- 之前将这些行放在您的根入口点(通常是 index.js AppRegistry.registerComponent 中。

对于 React Native 0.56.0+

 Text.defaultProps = Text.defaultProps || {};
Text.defaultProps.allowFontScaling = false;

对于 React Native 的早期版本,您应该只需要第二行,但两者都不会受到伤害。第一行只是防止 Text 组件没有 defaultProps 这是 React Native 0.56.0 及更高版本的情况。

Add the above lines in the entry point file of your React Native application (usually index.js , app.js or main.js ) to apply this prop to all Text 应用程序中的组件。

此道具只会影响 Text 组件,您可能希望对 TextInput 应用相同的更改,这可以通过类似的代码段完成:

 TextInput.defaultProps = TextInput.defaultProps || {};
TextInput.defaultProps.allowFontScaling = false;

Also note that some components wont obey font scaling settings, for example: Alert , PickerIOS , DatePickerIOS , TabBarIOS , SegmentedControlIOS 因为这些都是原生绘制的,不依赖 Text 组件。

原文由 levi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题