uni-app ios平台 动态设置 tabBar 隐藏(hideTabBar)再显示(showTabBar)时 blurEffect 失效
uni-app ios平台 动态设置 tabBar 隐藏(hideTabBar)再显示(showTabBar)时 blurEffect 失效
4 回复
问题复现,已反馈给相关人员排查,已加分感谢反馈!
HBuilder X 3.5.1-alpha已修复
好的,谢谢。
在 uni-app 中,使用 hideTabBar
和 showTabBar
动态隐藏和显示 tabBar 时,可能会导致 iOS 平台上的 blurEffect
失效。这是因为在 iOS 上,blurEffect
是通过设置背景视图的 UIVisualEffectView
实现的,而 hideTabBar
和 showTabBar
的操作可能会导致 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
}
}
}
});