uni-app ios平台 动态设置 tabBar 隐藏(hideTabBar)再显示(showTabBar)时 blurEffect 失效

发布于 1周前 作者 eggper 来自 Uni-App

uni-app ios平台 动态设置 tabBar 隐藏(hideTabBar)再显示(showTabBar)时 blurEffect 失效

4 回复

问题复现,已反馈给相关人员排查,已加分感谢反馈!


HBuilder X 3.5.1-alpha已修复

好的,谢谢。

在 uni-app 中,使用 hideTabBarshowTabBar 动态隐藏和显示 tabBar 时,可能会导致 iOS 平台上的 blurEffect 失效。这是因为在 iOS 上,blurEffect 是通过设置背景视图的 UIVisualEffectView 实现的,而 hideTabBarshowTabBar 的操作可能会导致 UIVisualEffectView 被移除或重新创建,从而导致 blurEffect 失效。

解决方案

你可以尝试以下方法来避免 blurEffect 失效:

1. 手动重新设置 blurEffect

在调用 showTabBar 后,手动重新设置 blurEffect。你可以通过以下方式实现:

uni.showTabBar({
  success: () => {
    // 重新设置 blurEffect
    const tabBar = uni.getTabBar();
    if (tabBar && tabBar.$el) {
      const tabBarView = tabBar.$el.querySelector('.uni-tabbar');
      if (tabBarView) {
        tabBarView.style.backdropFilter = 'blur(10px)'; // 重新设置模糊效果
        tabBarView.style.webkitBackdropFilter = 'blur(10px)'; // 兼容 iOS
      }
    }
  }
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!