嵌套在 UIScrollView 中时保持 UITableView 的重用能力
Posted
技术标签:
【中文标题】嵌套在 UIScrollView 中时保持 UITableView 的重用能力【英文标题】:Keeping reuse capabilities of UITableView when it is nested in a UIScrollView 【发布时间】:2014-09-16 16:11:33 【问题描述】:为了在 ios 应用程序中实现相当复杂的屏幕设计,我在 UIScrollView 中嵌套了一个 UITableView。
为了保持逻辑简单,我在 UITableView 上实现了一个计算其整个高度的方法,我使用该方法的结果并在嵌套表视图上设置约束,以便滚动逻辑可以单独在UIScrollView 来处理。 (我从UITableView转发scrollRectToVisible等方法到UIScrollView)
虽然这适用于小型数据集,但我最近发现 UITableView 的重用功能没有被使用,因为框架认为当我设置高度约束时整个 UITableView 都是可见的。 cellForRowAtIndexPath
方法中的一个简单日志方法显示所有单元格一次计算。
我的问题是,我能做些什么来告诉嵌套的 UITableView 有多少实际上在屏幕上可见,并且只计算那些可见的单元格?
我基本上需要覆盖 UITableView 中负责计算哪些单元格应该在屏幕上可见的任何部分。
【问题讨论】:
见oleb.net/blog/2014/05/scrollviews-inside-scrollviews 【参考方案1】:表格视图会认为自己用单元格填充它的整个框架。如果您限制高度,它将限制可见的单元格计数。你是否使用了带重用标识符方法的双端队列(如果没有见下文)
How can I recycle UITableViewCell objects created from a XIB?
【讨论】:
以上是关于嵌套在 UIScrollView 中时保持 UITableView 的重用能力的主要内容,如果未能解决你的问题,请参考以下文章
包含在嵌入导航控制器的视图控制器中时,UIScrollView 不滚动
当场景嵌入到 NavigationController 中时,如何防止 UIScrollView 被下推?
UIButton 没有响应嵌套在另一个 UIScrollView 中的 UIScrollView 中的触摸
嵌套在 UIScrollview 中的 ViewController 中的 presentModalViewController?