WKWebView에 헤드 뷰 추가

2182 단어
두 가지 방법으로 헤드 뷰를 추가하는 방법을 소개합니다. 첫 번째 방법은 (오류가 있고 조정 중) 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의 바디 첫 번째 노드에 공백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에 보기를 직접 추가할 수 없습니다.2. 웹뷰의 scrollView를 사용할 수 없습니다.콘텐츠 Inset에서 헤더 보기를 추가합니다. 웹이 이 구역을 굴러가면 클릭 이벤트가 없습니다.

좋은 웹페이지 즐겨찾기