在 iOS 中 React Native 更改状态栏文本颜色
Posted
技术标签:
【中文标题】在 iOS 中 React Native 更改状态栏文本颜色【英文标题】:React Native change status bar text color in iOS 【发布时间】:2019-03-10 15:33:39 【问题描述】:我正在使用 React Native 开发应用程序,我被要求将状态栏的文本颜色设置为白色。
我使用了带有属性 barStyle="light-content" 的 StatusBar 组件,它在 android 上运行良好,但在 ios 上却不行,文本颜色仍然是黑色。
我对此进行了一些研究,但找不到任何有用的信息。我什至尝试在 XCode like the following picture shows 上选择 Light Status bar 样式,但它仍然不起作用
【问题讨论】:
试试这个可能对你有帮助:github.com/RNRF/react-native-router-flux/issues/2882 @Kuldeep 我在写这篇文章之前已经检查了那个链接,它并没有真正帮助我,我现在正在尝试很多东西,但我仍然卡住了 @Fabrizio 你应该将你的解决方案写成答案并接受它,这样其他人就可以很容易地看到这个问题的解决方案(回答你自己的问题感觉很奇怪,但这是 Stack Overflow 上的常见做法)。 @MateiRadu 注意到了! 【参考方案1】:我解决了这个问题! 我在索引页面中使用此代码并将文本颜色设置为白色:
<StatusBar barStyle="light-content" translucent=true />
【讨论】:
【参考方案2】:尝试将此代码放入 AppDelegate 文件中的 didFinishLaunchingWithOptions 中。
UIApplication.shared.statusBarStyle = .lightContent
目标c
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
并在您的 info.plist 文件中将 UIViewControllerBasedStatusBarAppearance 设置为 NO
【讨论】:
我试过你的代码,但是当我在 React Native 中开发时,AppDelegate 文件是用 Objective C 编写的,我试图找到用 Objective C 编写的类似代码行,但我真的很挣扎有了它,到目前为止它还没有工作 在 Objective C 中 setStatusBarStyle 已被弃用,我仍然尝试了那行代码,但状态栏的文本颜色仍然是黑色,我认为 React Native 正在接管该代码,遗憾的是我没有不知道该怎么办。我也忘了在我的第一篇文章中提到,只有一个文本颜色为白色的视图,一旦我转到另一个视图,它就会切换到黑色,当我回到“白色文本颜色视图”时,它不再是白色了但是黑色,真的很混乱。【参考方案3】:我的问题解决了!
问题来自一个名为 React Native Navbar 的 React Native 库,它也控制了状态栏,我必须在该组件中设置“light-content”属性。
【讨论】:
【参考方案4】:【讨论】:
以上是关于在 iOS 中 React Native 更改状态栏文本颜色的主要内容,如果未能解决你的问题,请参考以下文章
为啥组件在状态更改后不重新渲染。在 react-native 函数组件中