动态改变 UITableView 高度
Posted
技术标签:
【中文标题】动态改变 UITableView 高度【英文标题】:Dynamically changing UITableView height 【发布时间】:2014-05-12 14:21:36 【问题描述】:在我的应用程序中,我有一个UITableView
,其框架上方有一个UIView
:
-----------
| UIView |
-----------
| |
| |
|UITableView|
| |
| |
-----------
当我向上滚动tableView
时,UIView
被向上推出屏幕,而当我向下滚动tableView
的内容时,UIView
被推回屏幕。 UIView
的所有移动都以与用户滚动相同的速度发生。因此,如果用户滚动 10px,UIView 只会移动 10px。
我遇到的问题是调整tableView
的大小。我希望它根据 UIView 的 y 位置调整大小,这样就不会有任何空间。
UIView
的移动工作正常,但 tableView
的大小调整完全没有。我真的冻结了主线程,它真的很前卫。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
Some code for moving the UIView...
UpdateFrameY(_tableViewController.tableView, diff);
UpdateFrameHeightOnDiff(_tableViewController.tableView, diff);
有没有更好的方法可以做到这一点? 我实际上是在尝试从 FB 应用程序中复制这种行为。它在那里工作得非常顺利。 非常感谢!
【问题讨论】:
Change UITableView height dynamically 的可能重复项 我想知道更多细节,比如单元格高度是否随着表格高度更新而改变。一个示例项目将是完美的。 【参考方案1】:不要更改 uitableview 高度。只需更改其内容插图并将您的 UIView 放在 UITableView 上(因此 UIView 和 UITableView 将具有相同的帧原点);您将获得一些性能改进。
【讨论】:
我实际上试过这个,但我的内容插入有问题,因为我在 UITableViewController 中使用了 UIRefreshControl。这总是与内容插图混淆。 您可以尝试不为内容插图设置动画。把它修好。当 UITableView 将滚动到最顶部的单元格时,顶部的 UIView 将始终具有其最大的框架以上是关于动态改变 UITableView 高度的主要内容,如果未能解决你的问题,请参考以下文章