Uitableview 使用重复结束页的无限UIScrollView
我正在使用重复的结束页实现无限UIScrollView。具体来说,我有3个ViewController,我将其视图作为子视图添加到UIScrollView内容中。因此,实际上,UIScrollView内容如下所示(V1=Viewcontroller的视图1,V2,Viewcontroller的视图2,V3=Viewcontroller的视图) UIScrollView的内容: [V3][V1][V2][V3][V1] 当用户从V2向右滚动到V3到V1时,我使用“scrollRectToVisible”将ScrollView切换到第二个位置的V1,使它看起来无穷无尽。同样,当用户从V2向左滚动到V1到V3时,我将滚动视图从第二个位置移到最后一个位置的V3 代码方面,这看起来像这样:Uitableview 使用重复结束页的无限UIScrollView,uitableview,uiscrollview,Uitableview,Uiscrollview,我正在使用重复的结束页实现无限UIScrollView。具体来说,我有3个ViewController,我将其视图作为子视图添加到UIScrollView内容中。因此,实际上,UIScrollView内容如下所示(V1=Viewcontroller的视图1,V2,Viewcontroller的视图2,V3=Viewcontroller的视图) UIScrollView的内容: [V3][V1][V2][V3][V1] 当用户从V2向右滚动到V3到V1时,我使用“scrollRectToVisib
- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender {
if (scrollView.contentOffset.x == 0) {
// user is scrolling to leftwards and has reached the position 0 of the scrollview
[scrollView scrollRectToVisible:CGRectMake(960,0,scrollView.frame.size.width,scrollView.frame.size.height) animated:NO];
}
else if (scrollView.contentOffset.x == 1280) {
// user is scrolling rightward and has reached the last position of the scrollview
[scrollView scrollRectToVisible:CGRectMake(320,0,scrollView.frame.size.width,scrollView.frame.size.height) animated:NO];
}
}
}
我这里的问题是ViewController中有UITableView。例如,V1有一个UITableView。如果用户已经转到V1的UITableView的第10行,我相信我需要在scrollview的V1视图中同步UITableView的状态
用户只会在一瞬间看到最右边的[V1],或者只将scrollview拖到一半,但是如果状态不同步,用户仍然会注意到它不是同一个TableView
有办法解决这个问题吗?我想到的一种方法是保存状态,然后更新所有V1,以便它们显示相同的内容
是否可能有两个UITableView对象以某种方式自动相互镜像
谢谢大家! 你说:
如果用户已经转到V1的UITableView的第10行,我相信我需要在scrollview的V1视图中同步UITableView的状态
这意味着您拥有同一V1 ViewController的多个实例
是否可能有两个UITableView对象以某种方式自动相互镜像
是的,在NSUserDefaults上使用NSNotificationCenter应该可以做到这一点,但也许您可以做一些更有效的事情
而不是使用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender
你可以试试看
- (void)layoutSubviews
在特定条件下(通常是移动已从屏幕上完全消失的VC),仅重新安排3个VC(每个类一个实例)。因此,您将节省2个VC,并且不必处理同一类的同步实例
苹果发布了一段关于无限滚动视图的精彩视频(WWDC 2011,第104期-高级滚动视图技术)
希望这有帮助。祝你好运。谢谢,我会试试这个!