【发布时间】:2012-03-26 20:16:33
【问题描述】:
我有一个项目,我需要在 iPad 上的同一视图中显示多个 UITableView 实例。它们也恰好是旋转的,但我相当肯定这无关紧要。用户应该不知道视图是由多个表视图组成的。因此,我想让它在我滚动一个 tableview 时,其他的同时滚动。
因为UITableView 是UIScrollView 的子类,我想我可以处理UIScrollViewDelegate 方法并将它们传递给所有的tableviews。不幸的是,虽然我可以捕获一些事件,但方法调用粒度不够精细,并且我无法将这些消息传递给其他表视图。我能得到的最接近的是实现-scrollViewDidScroll:,然后在每个tableview 上调用-setContentOffset:animated。如果我尝试针对所有潜在情况发送此消息,我最终会锁定,因为 -scrollViewDidScroll 正在为我的 -setContentOffset:animated 呼叫而被调用,所以我最终会冻结。无论如何,如果我通过仅使用此方法检测一个 tableview 上的滚动然后将其传递给其他 tableviews 来消除锁定,我发现虽然其他 tableviews 最终滚动到同一位置,但它们滞后一秒或两个。
Here's a sample project I created.
如何在不继承 UITableView 的情况下实现此行为?
【问题讨论】:
标签: objective-c ios uitableview uikit