我对 ScrollView 中的无限分页有疑问。在我的应用程序中,ScrollView 中只有 3 个子视图。每个子视图都是从 xib 文件加载的。通常它在 ScrollView 中看起来像 ABC。我想进行无限分页,所以我添加了端盖,现在它看起来像 CABCA。如果用户在第一个 C 上,则跳转到常规 C,如果用户在最后一个 A 上,则跳转到常规 A。代码如下:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender {
if (scrollView.contentOffset.x == 0)
{
[scrollView scrollRectToVisible:CGRectMake
((scrollView.frame.size.width * 3), 0,
scrollView.frame.size.width,
scrollView.frame.size.height) animated:NO];
}
else if (scrollView.contentOffset.x == scrollView.frame.size.width * 4)
{
[scrollView scrollRectToVisible:CGRectMake
(scrollView.frame.size.width, 0,
scrollView.frame.size.width,
scrollView.frame.size.height) animated:NO];
}
}
它现在完美运行。但是我有每个子视图的 ViewController,这就是我将它们添加到 ScrollView 的方式:
subViewController1 = [[SubViewController1 alloc] initWithNibName:@"SubView" bundle:nil];
subViewController1.view.frame =
CGRectMake(0, 0, scrollView.frame.size.width, scrollView.frame.size.height);
[scrollView addSubview:subViewController1.view];
问题是 A 和 C 视图有一个副本,所以现在我有 5 个控制器而不是 3 个。如果我想在 A 视图中添加一些东西,我必须将它也添加到 A 视图的副本中。
有没有办法如何用一个控制器控制视图 A 和 A 的副本,这样我就不必创建一个控制器的两个实例?谢谢你。