极简实现任意版本 SwiftUI 中隐藏和显示系统底部横条(Home Indicator)

Source

在这里插入图片描述

功能需求

有时我们希望在 SwiftUI 界面中隐藏系统底部横条(Home Indicator),虽然从 iOS 16(SwiftUI 4.0)开始, 对此提供了专门的原生方法,不过如何在之前版本的 SwiftUI 中完成此功能呢?

在这里插入图片描述

如上图所示,我们在任意版本 SwiftUI 中实现了系统底部横条的显示和隐藏功能,并考虑到当前有弹出窗口的情况。

在本篇博文中,您将学到以下内容:

  • 在 SwiftUI 4.0+ 中如何隐藏系统底部横条;
  • 在 SwiftUI 1.0 - 3.0 中如何完成上面同样的事;
  • SwiftUI 中如何替换当前活动 Window 中的 rootViewController,同时避免视图布局异常(伴随 Unbalanced calls to begin/end appearance transitions 警告);
  • SwiftUI 在当前有弹出窗口(Alert)时替换活动 Window 中 rootViewController 的注意事项;
  • iOS 17 中隐藏系统底部横条的与众不同之处;

闲言少叙,Let‘s go!!!