[英]How to view the content UITableView's reusable pool
我试图深入研究UITableView
内部是如何工作的。 我已经阅读了多篇关于这样的帖子,
https://www.mikeash.com/pyblog/friday-qa-2013-02-22-lets-build-uitableview.html
我想知道是否有任何方法可以查看可重用池的内容,即其中有多少以及所有UITableViewCell
类型在某一时刻可用。
我已经知道我们将有cells
按照屏幕尺寸和cell
高度。 但我试图弄清楚如果tableView
在不同的indexPaths
接受不同类型的cells
会发生什么。
好吧,您可以深入研究调试中的对象...
我在didSelectRowAt
设置了一个断点并查看了 Variables View 窗格:
我有一个行(索引路径[0,3]
所使用TestCellB
并且所使用90行TestCell
,并且该表被滚动到行21(这样的行[0,3]
殷实屏幕。
如您所见,有一个名为_reusableTableCells
的内部Dictionary
,在我的示例中,它当前包含1 个TestCellB
和2 个TestCell
。
编辑
我只是试了一下 - 可能会给你一些额外的信息:
var reusableCells = tableView.value(forKey: "_reusableTableCells")
print(reusableCells)
输出:
Optional({
TestCellB = (
"<TranslateTest.TestCellB: 0x7f87b206aa00; baseClass = UITableViewCell; frame = (0 1612; 414 37); clipsToBounds = YES; hidden = YES; autoresize = W; layer = <CALayer: 0x600003a66380>>"
);
TestCellC = (
"<TranslateTest.TestCellC: 0x7f87b2894800; baseClass = UITableViewCell; frame = (0 205; 414 93); clipsToBounds = YES; hidden = YES; autoresize = W; layer = <CALayer: 0x600003a586e0>>",
"<TranslateTest.TestCellC: 0x7f87b3000e00; baseClass = UITableViewCell; frame = (0 298; 414 93); clipsToBounds = YES; hidden = YES; autoresize = W; layer = <CALayer: 0x600003a5fe40>>"
);
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.