ios - это - xcode wkwebview




Добавление вида заголовка в WKWebView ScrollView (2)

В методе делегирования 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];

это сработало идеально для меня. Надеюсь, это решит вашу проблему.

Кому-нибудь удалось успешно добавить представление верхнего или WKWebView колонтитула в WKWebView ScrollView ?

В настоящее время я пытаюсь сделать это, используя метод, описанный здесь для UIWebView Добавление представления заголовка к UIWebView, похожему на Safari и Статьи .

Когда этот метод используется в WKWebView представление содержимого origin.y корректно изменяется, но содержимое обрезается внизу.

Использование смещения содержимого представления прокрутки также невозможно, поскольку оно нарушает фиксированные элементы CSS в веб-представлении.


Вот пример, который, я думаю, делает так, как вы описываете. Он смещает веб-контент, устанавливая contentInset в scrollView и scrollView представления заголовка на отрицательную величину:

@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;
}






wkwebview