2

我试图寻找这个问题的答案,但到目前为止我还没有运气。

语境

我在标准 UIViewController(不是 UITableViewController ..)中有一个 UITableView。我对 UITableViewCell 进行了子类化,并且 tableview 中的所有单元格都来自同一个类。

要求

我想找到一种有效的方法来根据表格视图的滚动来调整单元格的大小。例如,当单元格位于可见列表的底部时,高度为 X。当单元格在屏幕上向上移动时,其高度应按比例增加到 2X。

附加信息

我即将放弃 UITableView 的方式,开始制作我自己的控件,通过子类化 UIScrollView 来实现这样的壮举。但是,我想在走这条路之前看看是否有可能。我确实看到了一些非常有趣的 SO 帖子,但没有什么能让我走上正确的道路。

任何提示或帮助将不胜感激。

4

1 回答 1

1

您需要响应滚动视图委托方法scrollViewDidScroll:并实现它以记录表格视图顶部的单元格并重新加载表格视图。然后您的表格视图委托方法tableView:heightForRowAtIndexPath:通过索引路径和顶部单元格索引路径之间的关系设置单元格高度。

您的主要问题是始终重新加载表视图时的性能。

如果您想推出自己的解决方案,无论如何都将遵循上述描述,但是您将能够比表格视图更有效,因为表格视图将为tableView:heightForRowAtIndexPath:每次重新加载的每一行调用一次该方法计算表格内容的总高度。

于 2013-05-20T07:39:38.890 回答