You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode13编译iOS15.1时导航栏消失及UserDialogs滚轮日期选择器异常问题

问题1:Xcode 13编译iOS 15.1后导航栏消失

原因

iOS 15对导航栏默认外观规则做了调整,UINavigationBar新增的scrollEdgeAppearance属性默认采用透明背景配置,未显式设置的场景下,页面滚动到顶部时导航栏会呈现“消失”的效果。

解决方法

在iOS项目的AppDelegate的FinishedLaunching生命周期方法中,全局配置导航栏统一外观,示例代码(Xamarin.iOS/MAUI场景):

if (UIDevice.CurrentDevice.CheckSystemVersion(15, 0))
{
    var navBarAppearance = new UINavigationBarAppearance();
    // 配置为不透明背景,也可调用ConfigureWithTransparentBackground适配透明导航栏需求
    navBarAppearance.ConfigureWithOpaqueBackground();
    // 按需自定义导航栏背景色、标题文字样式
    navBarAppearance.BackgroundColor = UIColor.SystemBlue;
    navBarAppearance.TitleTextAttributes = new UIStringAttributes
    {
        ForegroundColor = UIColor.White
    };
    // 同时应用普通状态和滚动边缘状态的外观
    UINavigationBar.Appearance.StandardAppearance = navBarAppearance;
    UINavigationBar.Appearance.ScrollEdgeAppearance = navBarAppearance;
}

问题2:ACR UserDialogs日期选择器从滚轮变为日历样式

原因

iOS 14及以上系统中,UIDatePicker的默认preferredDatePickerStyle从滚轮样式调整为自动样式,系统会优先展示新版日历选择器,旧版本ACR UserDialogs未适配该属性的自定义配置,导致默认走系统新样式。
问题现象截图:
日期选择器异常现象

解决方法

方法1(推荐):升级ACR UserDialogs到最新稳定版

最新版本库已新增iOS日期选择器样式的配置参数,调用时显式指定滚轮样式即可,示例代码:

var dateConfig = new DatePromptConfig
{
    // 仅iOS平台生效,指定为滚轮样式
    iOSPickerStyle = iOSDatePickerStyle.Wheels
};
var result = await UserDialogs.Instance.DatePromptAsync(dateConfig);

方法2:全局修改UIDatePicker默认样式

如果暂时无法升级依赖库,可以在iOS项目中全局设置UIDatePicker的默认样式,在AppDelegate的FinishedLaunching方法中添加以下代码:

if (UIDevice.CurrentDevice.CheckSystemVersion(14, 0))
{
    UIDatePicker.Appearance.PreferredDatePickerStyle = UIDatePickerStyle.Wheels;
}

内容的提问来源于stack exchange,提问作者helper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:06:04