链接:http://blog.youkuaiyun.com/wqs1028/article/details/51273981
在 webView 上添加视图,页面需要和webView一起上下滑动,所以实现方法大概有两种
(一)把需要添加的视图添加到webView上
// 添加额外的滚动附近区域的内容]
CGFloat topImgHeight = 250 * RectScale;
_webView.scrollView.contentInset = UIEdgeInsetsMake(topImgHeight, 0, 0, 0);//上,左,下,右 改变webView上的H5页面的展示位置向下挪
UIView *coverView = [[UIView alloc]initWithFrame:CGRectZero];
coverView.frame = CGRectMake(0,
-(topImgHeight), kDeviceWidth, topImgHeight);//注意添加视图时的坐标
[_webView.scrollView addSubview:coverView];//添加自己的视图到_webView.scrollView
(二)WebView加载完成获取webview中scrovllview的contentsize进行设置
-(void)webViewDidFinishLoad:(UIWebView*)webView{
CGFloatwebViewHeight=[webView.scrollViewcontentSize].height;
CGRectnewFrame=webView.frame;
newFrame.size.height=webViewHeight;
webView.frame=newFrame;
}
备注:第二种方法弊端是必须每次重新创建webView,不然会调用上次的webView高度
然而调整后右边出现了莫名的黑条,经过尝试我的解决方法是:
_contentWebView.opaque = NO;
_contentWebView.backgroundColor = [UIColor clearColor];
加上这两句代码可以解决问题。
额外附带自己的代码
UIWebView *boomWebView = [[UIWebView alloc]init];
#warning 此处需要先这是内置偏移再设置frame否则会发生切换时出现底部黑边
boomWebView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 85, 0);
boomWebView.frame=CGRectMake(0, 0, MSWIDTH, MSHIGHT-64);
boomWebView.opaque = NO;
boomWebView.backgroundColor=[UIColor whiteColor];
NSURL *url = [[NSBundle mainBundle] URLForResource:@"bank" withExtension:@"html"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[boomWebView loadRequest:request];
boomWebView.delegate = self;
[self.view addSubview:boomWebView];
self.webview=boomWebView;
BoomShowView *boomshowView = [[BoomShowView alloc]initWithFrame:CGRectMake(0, boomWebView.bottom, MSWIDTH, 85)];
boomshowView.backgroundColor=[UIColor whiteColor];
[boomWebView.scrollView addSubview:boomshowView];
self.boomshowView=boomshowView;
代理方法中添加监控:
-(void)webViewDidFinishLoad:(UIWebView *)webView{
CGFloat he=webView.scrollView.contentSize.height;
self.boomshowView.frame=CGRectMake(0, he, MSWIDTH, 84);
}