iOS WKWebView+UITableView混排

本文总结了在iOS应用中实现WKWebView与UITableView混排的四种方法,包括将webView作为tableView的Header并撑开、将tableView添加到webView.scrollView下、不撑开webView的header方案以及在同一scrollView下添加webView和tableView。文中详细介绍了每种方案的优缺点及实现细节,特别是推荐的方案3和4,强调了惯性滑动和边缘反弹的实现。此外,还提到了WKWebView的离线缓存功能和其他iOS开发技巧。
摘要由CSDN通过智能技术生成

WKWebView+UITableView混排

目录

做内容展示页的时候,经常会用到WKWebView+UITableView的混排功能,现在此做一个总结,该功能的实现我采用了四种方法。

  • 1、 tableView.tableHeaderView = webView 撑开webView
  • 2、[webView.scrollView addSubview:tableView] + 占位Div
  • 3、tableView.tableHeaderView = webView 不撑开webView (推荐)
  • 4、scrollView addSubView: webView & tableView (推荐)
  • 5、结尾

方案1:

webView作为tableViewHeader, 撑开webView,显示渲染全部内容,当内容过多时,比如大量高清图片时,容易造成内存暴涨(不建议使用),此方案简单粗暴 , 仅适用于内容少的场景,具体实现不在此赘述,直接看代码。

方案2:

简书的内容页实现方案 : UIWebView与UITableView的嵌套方案

tableView 加到 webView.scrollView 上, webView 加载的HTML最后留一个空白占位div,用于确定 tableView 的位置,在监听到webView.scrollView.contentSize变化后,不断调整tableView的位置,同时将该div的尺寸设置为tableView的尺寸。禁用tableViewwebView.scrollViescrollEnabled = NO,通过添加pan手势,手动调整 contentOffsettableView的最大高度为屏幕高度,当内容不足一屏时,高度为内容高度。

方案3(推荐):

webView作为tableView的Header, 但不撑开webView。禁用tableViewwebView.scrollVie的scrollEnabled = NO,通过添加pan手势,手动调整contentOffsetwebView的最大高度为屏幕高度,当内容不足一屏时,高度为内容高度。和方案2类似,但是不需要插入占位Div。主要代码如下:

  • 步骤1:初始化配置
//禁用自带的滑动功能
 _webView.scrollView.scrollEnabled = NO;
 _tableView.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值