【问题标题】:No visible @interface for UITabBar setScrollEdgeAppearanceUITabBar setScrollEdgeAppearance 没有可见的@interface
【发布时间】:2021-11-07 01:52:40
【问题描述】:

今天我在 Xcode 12 上遇到了问题。当我尝试 iOS 15 版本的应用程序时,我注意到标签栏背景发生了变化。我通过添加这行代码解决了这个问题

if (@available(iOS 15.0, *)) {
    [[UITabBar appearance] setScrollEdgeAppearance:tabBarAppearance.appearance];
}

但是在我从 Xcode 13 换回 Xcode 12 后,我遇到了这个问题。

“UITabBar”没有可见的@interface 声明选择器“setScrollEdgeAppearance:”

对我来说似乎是 Xcode12 错误,但也许我错了。

编辑:添加了代码中的 if 语句

【问题讨论】:

  • 它仅适用于 iOS 13 - UINavigationBarAppearance *scrollEdgeAppearance UI_APPEARANCE_SELECTOR API_AVAILABLE(ios(13.0));
  • 关于 xcode 构建失败的更多信息。当我切换到 xcode 13 时,一切正常。我只需要这条线用于 ios 15 但不能在 xcode 12 中构建它。
  • UINavigationBar 上的@Asperi scrollEdgeAppearanceUITabBar 上的scrollEdgeAppearance 不同。 UINavigationBar 从 iOS 13.0 开始就有了。 UITabBar 已在 iOS 15.0 中添加。
  • 你需要做这个编译时间检查:stackoverflow.com/a/68941618/2108547
  • 是的,我在 xcode 12 的 UITabBar 中添加了空函数,它为我解决了问题

标签: ios uitabbarcontroller uitabbar xcode12 xcode13


【解决方案1】:

我认为这是因为 scrollEdgeAppearance 只是 iOS UINavigationBar 的属性。自 iOS 15 以来,他们已将其扩展到所有其他导航栏

根据 Apple 文档:

在使用 iOS 14 或更早版本的应用上运行时,此属性适用 到带有大标题的导航栏。在 iOS 15 中,此属性适用 到所有导航栏。

【讨论】:

  • 是的,我了解它的新属性/方法,我只需要 ios 15 版本。但是,如果我添加提到的行 xcode build failed 因为找不到方法。在 xcode 13 中一切正常。对我来说很奇怪,他们不支持使用该方法的 xcode 12。
  • 那是因为 Xcode 12 不支持 iOS 15
【解决方案2】:

它仅在 Xcode 13 中可用。所以我们这样做是为了解决问题并能够在 Xcode 12 和 13 上编译:

#if __clang_major__ >= 13
if (@available(iOS 15.0, *)) {
    [[UITabBar appearance] setScrollEdgeAppearance:tabBarAppearance.appearance];
}
#endif

【讨论】:

    【解决方案3】:

    在 swift-file 中唯一对我们有用的解决方案:

    #if swift(>=5.5) // Only run on Xcode version >= 13 (Swift 5.5 was shipped first with Xcode 13).
            if #available(iOS 15.0, *) {
                UITabBar.appearance().scrollEdgeAppearance = tabBarAppearance
            }
    #endif
    

    那个 sn-p 确保它只使用 Xcode Version > 13 编译并且只在 iOS 15 上运行。Swift 5.5 是在 Xcode 13 中引入的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      相关资源
      最近更新 更多