将标题视图添加到WKWebView ScrollView

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (203)

有没有人设法成功添加页眉或页脚视图WKWebView ScrollView

我目前正在尝试使用此处描述的方法执行此操作,以UIWebView 向类似于Safari和文章的UIWebView添加标题视图

WKWebView内容视图中使用此方法时,内容视图origin.y已正确更改,但内容在底部被截断。

使用滚动视图内容偏移也是不可能的,因为它会破坏Web视图中固定定位的CSS元素。

提问于
用户回答回答于

在webView Delegate方法中

- (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];

这对我来说很完美。希望它能解决你的问题。

用户回答回答于

这是我认为你所描述的一个例子。它抵消通过设置网页内容contentInset上的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.stackoverflow.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;
}

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励