在 WKWebView 上滚动时 UINavigationBar/UIVisualEffectView 的模糊半透明效果?
Posted
技术标签:
【中文标题】在 WKWebView 上滚动时 UINavigationBar/UIVisualEffectView 的模糊半透明效果?【英文标题】:Blurry translucent effect of UINavigationBar/UIVisualEffectView while scrolling on a WKWebView? 【发布时间】:2014-11-14 14:00:38 【问题描述】:我想实现与 Safari 中相同的效果,其中导航栏的颜色会略有变化,以反映滚动时经过的网页。
过去使用 UIWebView 的 6 年老方法是简单地包含这两行代码:
webView.scrollView.contentInset = UIEdgeInsetsMake(44.0, 0.0, 0.0, 0.0);
webView.scrollView.scrollIndicatorInsets = _webView.scrollView.contentInset;
由于 WKWebView 边缘插图的工作方式与内容偏移非常相似。它最初显示正确,但是当您滚动时,网页会在 UINavigationBar/UIVisualEffectView 下方移动,从而无法到达相应调整的网站的顶部栏,例如 apple.com
还有其他方法吗?
以下答案已有 6 年历史且已过时。
【问题讨论】:
【参考方案1】:你需要移动导航栏下的web view,然后设置web view的contentInset
,像这样:
navBar.frame = CGRectMake(0, 0, self.view.bounds.size.width, 44);
webView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
webView.scrollView.contentInset = UIEdgeInsetsMake(44, 0, 0, 0);
webView.scrollView.scrollIndicatorInsets = webView.scrollView.contentInset;
【讨论】:
我只改变:UIEdgeInsetsMake(-44, 0, 0, 0);谢谢!【参考方案2】:在 xcode 和状态栏样式中转到您的应用设置,单击下拉菜单并选择“Light”。 这些应该适用于您的所有应用
【讨论】:
以上是关于在 WKWebView 上滚动时 UINavigationBar/UIVisualEffectView 的模糊半透明效果?的主要内容,如果未能解决你的问题,请参考以下文章
WKWebView+contentInset 使内容大小错误