我试过寻找这个问题的答案,但到目前为止我还没有运气。
上下文
我在标准的UIViewController(不是UITableViewController ..)中有一个UITableView。我已经将UITableViewCell子类化,并且tableview中的所有单元格都来自同一个类。
要求
我想找到一种基于滚动查看窗口来调整单元格大小的有效方法。例如,当单元格位于可见列表的底部时,高度为X.当单元格在屏幕上向上移动时,其高度应按比例增加到2倍。
其他信息
我接近于放弃UITableView方式并开始创建我自己的控件,通过子类化UIScrollView来实现这样的壮举。但是,我想看看在走这条路之前是否可行。我确实看到了一些非常有趣的SO帖子,但没有什么可以让我走上正确的道路。
任何提示或帮助都将受到高度赞赏。
答案 0 :(得分:1)
您需要响应滚动视图委托方法scrollViewDidScroll:
并实现它以记录表视图顶部的单元格并重新加载表视图。然后,您的表视图委托方法tableView:heightForRowAtIndexPath:
通过索引路径和顶部单元索引路径之间的关系设置单元格高度。
您的主要问题是在重新加载表格视图时的性能。
如果你想推出自己的解决方案,那么它仍然符合上述描述,但是你可以比表格视图更有效,因为表格视图会调用tableView:heightForRowAtIndexPath:
方法一次对于每次重新加载的每一行,以便计算表格内容的总高度。