我正在尝试制作自定义表格 View 。我有一个加载了 UIViews 的 UIScrollView 。我想重新创建表格 View 具有的可重用单元格功能。我想知道什么是做到这一点的好方法。
我在想,当 UIViews 滚出屏幕时,我会将它们从 subview 中删除,当我需要另一个时,我只需添加它。但是我不确定什么方法可能是最好的方法。
我可以检查 scrollViewDidScroll:
中的 View 位置,但我不确定这是否是反复检查的最佳选择。如果有人有任何建议或有用的提示,那就太棒了。
谢谢!
最佳答案
scrollViewDidScroll 不是理想选择的一个原因是您的 ScrollView 子类需要成为它自己的委托(delegate)。这将剥夺该类的用户成为委托(delegate)的机会(至少很容易)。
检查这一点的更好位置是重写layoutSubviews
。是的,就像scrollViewDidScroll一样,它被多次调用!但如果您考虑一下,确定检测是否有任何 subview 已滚动的唯一方法是检查何时发生任何滚动。
所以关键是要尽可能高效地进行检查。我尝试的第一件事是快速枚举 subview ,询问由 contentOffset 转换的每个帧是否落在父 View 的范围内(使用 CGRectIntersectsRect )。如果没有,请将其添加到您的重用池中并将其从 super View 中删除。
关于iphone - 尝试创建一个高度自定义的 TableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18295407/