在WKWebView添加头视图

介绍两种方法添加头视图:
第一种方法:(有错误,调整中)
在WKScrollView上添加视图,且设置WKContentView在的位置,代码如下:

UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 200)];
    topView.backgroundColor = [UIColor purpleColor];
    for (UIView *wkScrollView in self.webView.subviews) {
        if ([NSStringFromClass(wkScrollView.class) isEqualToString:@"WKScrollView"]) {
            for (UIView *wkContentView in wkScrollView.subviews) {
                if ([NSStringFromClass(wkContentView.class) isEqualToString:@"WKContentView"]) {
                    CGRect frame = wkContentView.frame;
                    frame.origin.y = topView.frame.size.height;
                    frame.size.height += 200;
                    wkContentView.frame = frame;
                    break;
                }
            }
            [wkScrollView addSubview:topView];
            break;
        }
    }

第二种方法:
在显示的HTML的body下第一个节点添加一个空白的div,在WKNavigationDelegate中使用注入js方法写入。代码如下:

- (void)webView:(WKWebView *)webView didCommitNavigation:(null_unspecified WKNavigation *)navigation {
    NSString *js = [NSString stringWithFormat:@"\
                    var appendDiv = document.getElementById(\"AppAppendDIV\");\
                    if (appendDiv) {\
                        appendDiv.style.height = %@+\"px\";\
                    } else {\
                        var appendDiv = document.createElement(\"div\");\
                        appendDiv.setAttribute(\"id\",\"AppAppendDIV\");\
                        appendDiv.style.width=%@+\"px\";\
                        appendDiv.style.height=%@+\"px\";\
                        document.body.insertBefore(appendDiv,document.body.children[0]);\
                    }", @(200), @(self.webView.scrollView.contentSize.width), @(200)];
    
    [webView evaluateJavaScript:js completionHandler:nil];
}

注意:1.不能直接在scrollView上添加视图,因为视图会盖住web的显示。
2.不能使用webView的scrollView.contentInset进行添加头部视图,因为web滚动此区域就没有点击事件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,238评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,764评论 25 709
  • 物质和能量可以相互转换 不同的表现方式 eV
    ww4u阅读 876评论 0 0
  • 摘录: 永远按照对方的观点去想,从他人的立场去看事,这或许会成为影响你终生事业的一个关键因素。 你为他们保全了面子...
    壹颗大橙子阅读 825评论 0 0