Xamarin iOS在灯光模式下将默认图标颜色更改为白色

cigdeys3  于 2023-02-10  发布在  iOS
关注(0)|答案(1)|浏览(135)

如何在iOS设备的亮模式下显示暗模式图标?我已经搜索这个问题好几个月了,每个帖子似乎都进入了死胡同,或者解决方案根本不起作用。使用Xamarin 17.3和VS 2022,并开发了一个Android和iOS的应用程序。我们有 shell 的背景色(〈Setter属性=“Shell.BackgroundColor”值=“141B4D”),它是深蓝色。默认情况下,黑色图标(电池,时间等)在此背景下显示效果不佳(这是一个公司的颜色,不能改变它。)Android似乎可以自己处理这个问题,我不必做任何改变&在亮和暗模式下,亮图标都显示在暗背景上。但在iOS的亮模式下,黑色图标显示,但看不见。在暗模式下,亮图标显示得很好。不久前,我尝试了一个建议,告诉它,在共享应用程序中,在亮模式下使用暗模式图标。

<Shell.Resources>
    <ResourceDictionary>
        <Style x:Key="BaseStyle" TargetType="Element">
            <Setter Property="Shell.BackgroundColor" Value="{AppThemeBinding Dark=Black, Light=#141B4D}" />
            <Setter Property="Shell.ForegroundColor" Value="{AppThemeBinding Dark=White, Light=White}" />

但这不起作用。所以我真的需要一些帮助来解决这个问题。如果这不是处理这个问题的正确方法,欢迎一个好的替代方案。谢谢

9lowa7mx

9lowa7mx1#

根据你的代码,如果我理解正确的话,似乎你只是希望状态栏中的文本或图标是白色的。因此,一个简单的实现方法是在AppDelegate中添加以下代码:

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        ...
        UIApplication.SharedApplication.StatusBarStyle = UIStatusBarStyle.LightContent;
        return base.FinishedLaunching(app, options);
    }

此外,您还必须在info.plist中添加一个键

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

注意:在属性列表编辑器中,它将显示 * 查看基于控制器的状态栏外观 *
然后在深蓝色的背景中,你也可以看到白色的图标。下图是在亮模式下。

希望对你有用。

相关问题