将标题视图添加到 WKWebView ScrollView
Posted
技术标签:
【中文标题】将标题视图添加到 WKWebView ScrollView【英文标题】:Adding header view to WKWebView ScrollView 【发布时间】:2015-08-12 09:55:35 【问题描述】:有没有人成功地将页眉或页脚视图添加到WKWebView
ScrollView
?
我目前正在尝试使用此处为UIWebView
Adding a header view to a UIWebView similar to Safari and Articles 描述的方法来执行此操作。
当在WKWebView
中使用此方法时,内容视图origin.y
被正确更改,但内容在底部被截断。
使用滚动视图内容偏移也是不可能的,因为它会破坏 Web 视图中固定定位的 CSS 元素。
【问题讨论】:
嗨,我遇到了同样的问题。现有的答案都是关于UIWebView
并且没有WKWebview
的解决方案。所以我决定悬赏这个问题。
你能提供任何满足你需要的代码或截图吗?
您可以在 webview 加载后将其作为 HTLM 代码插入
我有一个可行的实现,只需向 webview 的 scrollView 添加一个视图,您是否尝试过,但它不起作用?
【参考方案1】:
在 webView 的委托方法中
- (void)webViewDidFinishLoad:(UIWebView *)webView
添加以下代码库,
mainWebViewObj.scrollView.contentInset = UIEdgeInsetsMake(headerView.frame.size.height,0.0,headerView.frame.size.height,0.0);
mainWebViewObj.scrollView.backgroundColor = [UIColor whiteColor];
if(![headerView superview])
[webView.scrollView addSubview:headerView];
[webView.scrollView bringSubviewToFront:headerView];
[mainWebViewObj.scrollView setContentOffset:
CGPointMake(0, -mainWebViewObj.scrollView.contentInset.top) animated:NO];
这对我来说很完美。希望它能解决你的问题。
【讨论】:
【参考方案2】:这是我认为与您描述的一样的示例。它通过在scrollView
上设置contentInset
并通过将标题视图框架偏移负数来偏移Web 内容:
@implementation ViewController
WKWebView* _webView;
UIView* _headerView;
- (void)viewDidLoad
[super viewDidLoad];
_webView = [[WKWebView alloc] initWithFrame: self.view.bounds];
[self.view addSubview: _webView];
[_webView loadRequest: [NSURLRequest requestWithURL: [NSURL URLWithString: @"http://www.***.com"]]];
[_webView.scrollView setContentInset: UIEdgeInsetsMake(100, 0, 0, 0)];
_headerView = [[UIView alloc] initWithFrame: CGRectMake(0, -100, 375, 100)];
_headerView.backgroundColor = [UIColor redColor];
[_webView.scrollView addSubview: _headerView];
- (void) viewDidLayoutSubviews
[super viewDidLayoutSubviews];
_webView.frame = self.view.bounds;
CGRect f = _headerView.frame;
f.size.width = _webView.bounds.size.width;
_headerView.frame = f;
【讨论】:
不幸的是,这遇到了问题中提到的相同问题,即使用内容偏移量会破坏 Web 视图中固定定位的 CSS 元素。以上是关于将标题视图添加到 WKWebView ScrollView的主要内容,如果未能解决你的问题,请参考以下文章
WKWebView 添加到子视图,并将大小设置为等于父视图?