使用Xcode16打包后,App在暗夜模式下,iOS18 切换Tabbar的item,会有一根白色线条闪过。

一. 背景

使用Xcode16打包后,App在暗夜模式下,切换Tabbaritem,会有一根白色线条闪过。

二. 分析

因为之前版本一直没有这个问题,是使用了Xcode16打包后,然后在iOS18系统上才会出现,一开始以为是UITabbar顶部的分割线导致的,但查看代码UITabbar顶部的分割线已经移除,查看图层,由于闪现也看不到任何东西。

因此通过代码逐步屏蔽并设置各个图层颜色为红色的的方式,逐步排查,最终确定了,这根白线是由UINavigationController引起的,因此查阅资料了解到:

iOS18 引入了新的 UITabBarController 切换动画(如缩放效果),可能在动画过程中短暂暴露底层视图(如 UINavigationController 的根视图背景色)。若 UINavigationController 的背景色与 UITabBar 差异较大,则会出现"闪现"现象。

而我们项目设置的UINavigationControllerview的背景颜色固定是白色,当处于暗夜模式的时候,也没有将UINavigationControllerview的背景颜色改为黑色,因此导致了暗夜模式下,iOS18系统上UITabbar切换出现白色线闪现问题。

三. 治理

该问题的治理有两种方案:

方案一

  • 在暗夜模式想将UINavigationControllerview的背景色也改为暗夜模式下的颜色,这样颜色一致,切换的时候,就不会出现白色线闪现问题。

方案二

  • 如果禁用UITabbar点击的切换动画,来禁止掉iOS18系统UITabBarController的切换动画
ini 复制代码
 // 方法1:包裹切换操作以禁用动画
UIView.performWithoutAnimation {
    tabBarController.selectedIndex = targetIndex
}
相关推荐
游戏开发爱好者82 小时前
iOS 26 崩溃日志深度解读,获取方式、系统变动、定位策略
android·macos·ios·小程序·uni-app·cocoa·iphone
深盾科技5 小时前
如何读懂Mach-O:构建macOS和iOS应用安全的第一道认知防线
安全·macos·ios
FreeBuf_7 小时前
iOS 0Day漏洞CVE-2025-24085相关PoC利用细节已公开
macos·ios·cocoa
林鸿群10 小时前
MacOS arm64 编译GStreamer iOS平台库
macos·ios
2501_9160074720 小时前
iOS 混淆与团队协作,研发、安全、运维、测试如何在加固流程中高效配合(iOS 混淆、ipa 加固、协作治理)
android·ios·小程序·https·uni-app·iphone·webview
HarderCoder1 天前
Swift 6.1 `withTaskGroup` & `withThrowingTaskGroup` 新语法导读
ios·swift
HarderCoder1 天前
Swift 并发:Actor、isolated、nonisolated 完全导读
ios·swift
贝多财经1 天前
OPPO手机“绿线”问题争议,高价等于高端,何以分食iPhone市场?
ios·智能手机·iphone
2501_916008891 天前
iOS 不上架怎么安装?多种应用分发方式解析,ipa 文件安装、企业签名、Ad Hoc 与 TestFlight 实战经验
android·macos·ios·小程序·uni-app·cocoa·iphone
hunteritself1 天前
DeepSeek V3.1-Terminus、阿里 Qwen3-Max、ChatGPT Pulse 同周登场!| AI Weekly 9.22-9.28
人工智能·ios·chatgpt·语音识别·iphone