如何在 React Native 中强制禁用 iOS 黑暗模式
How to force disable iOS dark mode in React Native
新的 iOS 13 更新引入了一个可选的系统范围。
这导致例如StatusBar 有浅色文本,在白色背景上可能变得不可读。它还会破坏 iOS 日期时间选择器(请参阅 DatePickerIOS
或 react-native-modal-datetime-picker)
解决方案是
- 将此添加到您的 Info.plist 文件中:
<key>UIUserInterfaceStyle</key>
<string>Light</string>
或
- 将此添加到您的
AppDelegate.m
:
if (@available(iOS 13.0, *)) {
rootView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
在您的 app.json 文件中添加:
{
"expo": {
...
"ios": {
"infoPlist": {
"UIUserInterfaceStyle": "Light"
}
},
}
这个解决方案似乎效果最好。将此添加到您的 AppDelagate.m
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
//add this here vv
if (@available(iOS 13, *)) {
self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
//add this here ^^
return YES;
将此添加到您的 Info.plist
<key>UIUserInterfaceStyle</key>
<string>Light</string>
这是给你的 AppDelegate.m
rootView.backgroundColor = [UIColor whiteColor];
这对我有用
- 将此添加到 Info.plist
<key>UIUserInterfaceStyle</key>
<string>Light</string>
- 这是给你的 AppDelegate.m
if (@available(iOS 13.0, *)) {
rootView.backgroundColor = [UIColor systemBackgroundColor];
self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
} else {
rootView.backgroundColor = [UIColor whiteColor];
}
新的 iOS 13 更新引入了一个可选的系统范围。 这导致例如StatusBar 有浅色文本,在白色背景上可能变得不可读。它还会破坏 iOS 日期时间选择器(请参阅 DatePickerIOS 或 react-native-modal-datetime-picker)
解决方案是
- 将此添加到您的 Info.plist 文件中:
<key>UIUserInterfaceStyle</key>
<string>Light</string>
或
- 将此添加到您的
AppDelegate.m
:
if (@available(iOS 13.0, *)) {
rootView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
在您的 app.json 文件中添加:
{
"expo": {
...
"ios": {
"infoPlist": {
"UIUserInterfaceStyle": "Light"
}
},
}
这个解决方案似乎效果最好。将此添加到您的 AppDelagate.m
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
//add this here vv
if (@available(iOS 13, *)) {
self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
//add this here ^^
return YES;
将此添加到您的 Info.plist
<key>UIUserInterfaceStyle</key>
<string>Light</string>
这是给你的 AppDelegate.m
rootView.backgroundColor = [UIColor whiteColor];
这对我有用
- 将此添加到 Info.plist
<key>UIUserInterfaceStyle</key> <string>Light</string>
- 这是给你的 AppDelegate.m
if (@available(iOS 13.0, *)) { rootView.backgroundColor = [UIColor systemBackgroundColor]; self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; } else { rootView.backgroundColor = [UIColor whiteColor]; }