默认情况下,在 iOS 15 中,导航栏在滚动到顶部时是透明的,然后在向下滚动时显示其背景。如果它可以在视图层次结构中找到滚动视图,则此方法有效。
在我的应用程序中,用户可以向下滚动导致导航栏背景可见,然后他们可以执行最终导致滚动视图从视图层次结构中删除的操作。问题是导航栏没有更新为再次透明。
由于从屏幕上删除滚动视图,如何触发重新绘制导航栏?我试过了
navigationController?.navigationBar.scrollEdgeAppearance = nil
navigationController?.navigationBar.setNeedsDisplay()
navigationController?.navigationBar.setNeedsLayout()
navigationController?.navigationBar.layoutIfNeeded()
但不幸的是,这并没有奏效——背景仍然可见。