我在网上搜索过这个并没有找到任何东西。在iPad上,是否有可能,而不是从屏幕上流出,项目“流向”右侧的新列,依此类推?
不要:
-------------- top of screen
01
02
03
04
05
-------------- bottom of screen
06
07
08
09 <-- these items are "scrolled" off the screen
10
11
12
13
想要:
-------------- top of screen
01 |06 |11
02 |07 |12
03 |08 |13 --> Columns grow to the right
04 |09 |
05 |10 |
-------------- bottom of screen
答案 0 :(得分:2)
您必须编写自己的自定义类才能执行此操作。表视图的重点是将列表保留在单个垂直列中。这就是拆分视图在iPad上运行良好的原因;您可以一次显示两个级别的数据层次结构。
答案 1 :(得分:2)
思想实验:使用三个tableviews,但使用相同的datasource / delegate。将其连线,以便每当一个视图滚动时(即通过–scrollViewDidScroll:
),您还可以使用-setContentOffset
手动滚动其他视图到适当的位置。你应该注意可能的循环调用。我不能保证这会起作用,但这是我能想到的尽可能接近的。
如果您希望最左侧的视图能够滚动到底部,或者最右侧的视图滚动到顶部,您可能还想为特定视图添加额外的行。
编辑:在大多数情况下,它看起来像基本的一样。我只是试了一下,并没有太糟糕。但是你需要注意一些小怪癖,包括循环调用和scrollview的减速。
对于我前面提到的循环调用,我使用以下代码管理它:
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
tableView1.delegate = nil;
tableView2.delegate = nil;
tableView3.delegate = nil;
scrollView.delegate = self;
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
tableView1.delegate = self;
tableView2.delegate = self;
tableView3.delegate = self;
}
至于之后的减速,并不是其他观点不会与它们一起减速,但如果你在减速时接触到其中一个,那么这些观点会有点不稳定。在这种情况下我没有尝试过,看看它是否能100%正常工作,但你应该尝试从here开始编码,以便在你再次开始拖动减速时停止减速。