由于刚开始做关于iOS 端的移动开发,所以对于wkwebview的使用一直处于摸索中,今天就说一下关于给wkwebview添加头部局的问题。
首先wkwebview之所以能滑动,是因为其内部使用的是uiscrollview,所以为了让添加的头部局可以随webview一起滑动,要处理的控件其实是scrollview。
直接上代码
CGFloat height = _head.height;
//下面这一步是主要的,就是给添加的内容添加偏移量,是添加在scrollview上的
_web.scrollView.contentInset=UIEdgeInsetsMake(height,0,0,0);
[_web.scrollView addSubview:_head];
[_web loadHTMLString:standardHTML(content) baseURL:nil]
但是这里只添加偏移量是不够的,运行的效果是头部局和加载的内容重叠并且一起向下偏移,这时候我们就要想一下了,问题出在哪里,其实这就要从初始化头部局的时候说起。因为我们的head最终是添加到webview上的,所以head的四个位置点都要相对于webview来进行设置;另外webview添加的内容,其显示的初始位置是在webview的左上角,这时候如果我们设置头部局设置的起始点也是webview的左上角,这就回造成显示内容和头部局产生重叠,所以我们设置头部局的时候就要将起始位置进行向上移。
上代码:
错误:_head =[ [UIView alloc]initwithFrame:CGRectMake(0,0,width,height)];//会出现重叠
正确:_head = [ [UIView alloc]initwithFrame:CGRectMake(0,-height,width,height)];//将起始位置上移
在将head上以后,再设置webview.scrollview.contentInset,进行整体向下偏移,这样就会正常展示,不会产生重叠了。
刚开始接触ios,如有不正确的地方请指出,我将加以改正
网友评论