iPadOS 18顶部悬浮tabbar移除

更新完ipad,顶部出现了悬浮导航栏,样式如下


image.png

只需要在UITabBarController中实现如下代码即可移除顶部tabbar,恢复原有样式

 if (@available(iOS 18, *)) {
      self.traitOverrides.horizontalSizeClass = UIUserInterfaceSizeClassCompact;
    }

在 iPadOS 上,使用 UITraitOverrides 可以强制窗口表现为 Compact 或 Regular 模式。这两种模式主要通过 UIUserInterfaceSizeClass 来定义,用于描述界面布局的尺寸类别。下面是它们的主要区别:

  1. Compact 模式

    • 特点:
    • Compact 模式表示紧凑布局,通常用于较小的屏幕或窗口。
    • 典型情况下,iPhone 竖屏模式和 iPad 上的 Slide Over 窗口(侧拉窗口)都会使用 Compact 模式。
    • 在 Compact 模式下,界面元素通常会缩减,侧边栏(如 UISplitViewController 的 primary view)可能会隐藏,以节省空间。
    • 使用场景:
    • iPad 的 Split View(分屏)时,应用一侧的视图可能会呈现为 Compact 模式,尤其是在较窄的分屏布局中。
    • 在 iPad 上使用 Slide Over(悬浮窗口)时,窗口通常是 Compact 模式。
    • 布局特性:
    • TabBar 和 NavigationBar 可能会变得紧凑,并且可能使用分段控制(Segmented Control)来切换界面。

  2. Regular 模式

    • 特点:
    • Regular 模式表示宽敞的布局,通常用于较大屏幕或宽屏模式。
    • 典型情况下,iPad 的主窗口在全屏和横屏模式下通常会使用 Regular 模式。
    • 在 Regular 模式下,应用的侧边栏和工具栏通常会显示更多的内容,界面会显得更加开放。
    • 使用场景:
    • iPad 的 Split View(分屏)时,应用两侧的视图在较宽的分屏布局中会呈现为 Regular 模式。
    • iPad 的主窗口在全屏或窗口模式下(如果窗口足够大)通常是 Regular 模式。
    • 布局特性:
    • 支持更多的界面元素和控件,比如显示完整的 UISplitViewController 侧边栏、工具栏、以及导航菜单等。

使用 UITraitOverrides 强制切换示例

if (@available(iOS 17.0, *)) {
UIWindow *window = self.view.window;
UITraitOverrides *overrides = [UITraitOverrides new];
overrides.horizontalSizeClass = UIUserInterfaceSizeClassCompact; // 或者 UIUserInterfaceSizeClassRegular
window.traitOverrides = overrides;
}

通过上面的代码,可以强制窗口的 horizontalSizeClass 为 Compact 或 Regular。

主要区别总结

特性 Compact 模式 Regular 模式
界面布局 紧凑,简化界面元素 宽敞,显示完整界面元素
适用设备和场景 Phone、iPad 小窗口 iPad 全屏或大窗口
常见用途 Slide Over、Split View 全屏应用、主窗口
侧边栏显示 通常隐藏或简化 通常显示完整的侧边栏
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容