使用googleland中的技术,我已经将我的iOS状态条文本设置为白色。除了将文本设置为黑色的iPhone XR之外,这一切都很好。
我发现处理这些问题的技巧都是Swift和目标C相关的。Xamarin.Forms的技术是什么?
在薄片里我有
基于这个相关的问题,iPhone XR上的状态栏文本颜色是不同的,我尝试了
但这会使所有iOS设备状态栏变成黑色,包括XR。然后讨论一些Swift代码,我不知道Xamarin中的模拟代码。
基于这个相关问题,https://forums.xamarin.com/discussion/89840/change-status-bar-color-on-ios
它是接近的,但它改变了酒吧的背景色。我在statusBar对象上找不到任何谈论文本颜色的属性。
基于这个相关问题,https://forums.xamarin.com/discussion/17922/navigationpage-statusbar-color
使用SetStatusBarStyle也不会影响XR。
注意:我不使用NavigationPage
发布于 2019-06-06 12:14:28
你们关系很好。似乎您需要使用自定义渲染器。在ViewController中,您将将PreferredStatusBarStyle函数覆盖到三个枚举在这里显示中的任何一个,如下所示:
public override UIStatusBarStyle PreferredStatusBarStyle()
{
return UIStatusBarStyle.LightContent;
}
发布于 2019-06-07 00:31:32
SWIFT4.2解决方案与NavigationController
第一步:
打开您的info.plist并插入一个名为的新键“基于视图控制器的状态栏外观”或YES,让每个VC使用自己的status属性。
第二步
在每个VC中,重写如下的preferredStatusBarStyle属性:
override var preferredStatusBarStyle : UIStatusBarStyle { return .lightContent //.default for black style }
最后一步
重写自定义preferredStatusBarStyle类中的NavigationController属性:
` `class : UINavigationController {
覆盖var preferredStatusBarStyle : UIStatusBarStyle {
if let topVC = viewControllers.last {
//return the status property of each VC, look at step 2
return topVC.preferredStatusBarStyle
}
return .default
}`
发布于 2019-06-11 01:44:08
我知道我们现在不应该使用UIStatusBarStyle
。但在我的XR模拟器上,它确实可以在iOS 12.2上工作。我将密钥添加到我的info.plist中:
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
状态栏的文本更改为白色:
使用代码更改颜色也很好:
UIApplication.SharedApplication.StatusBarStyle = UIStatusBarStyle.LightContent;
您可以利用它动态地调整状态栏样式。
但是,为指定的页面创建自定义渲染器是另一种选择。首先,在UIViewControllerBasedStatusBarAppearance
中将info.plist设置为true。
然后页面呈现器可以类似于:
[assembly: ExportRenderer(typeof(MainPage), typeof(CustomPageRenderer))]
namespace App.iOS
{
public class CustomPageRenderer : PageRenderer
{
public override UIStatusBarStyle PreferredStatusBarStyle()
{
return UIStatusBarStyle.LightContent;
}
}
}
MainPage
是窗体上的内容页类。我把它设置为应用程序的MainPage
。
https://stackoverflow.com/questions/56484037
复制相似问题