链接: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); }
不足之处,多多指教!!!