【发布时间】:2014-07-17 02:13:46
【问题描述】:
我有一个UIScrollView,我添加了三个视图Z、A 和B:
我想要完成的是以“旋转”方式设置三个视图,以首先出现的视图 A 为中心。当用户向左滑动并看到视图B 时,再次向左滑动向左 可以看到Z,反之亦然,在视图Z 时向左滑动向右 获得用户查看B。
我已经为self.scrollview 设置了这样的代码:
ZViewController *zViewController = [[ZViewController alloc] init];
[self addChildViewController:zViewController];
[self.scrollView addSubview:zViewController.view];
[zViewController didMoveToParentViewController:self];
AViewController *aViewController = [[AViewController alloc] init];
CGRect aframe = aViewController.view.frame;
aframe.origin.x = 320;
aViewController.view.frame = aframe;
[self addChildViewController:aViewController];
[self.scrollView addSubview:aViewController.view];
[aViewController didMoveToParentViewController:self];
BViewController *bViewController = [[BViewController alloc] init];
CGRect bframe = bViewController.view.frame;
bframe.origin.x = 640;
bViewController.view.frame = bframe;
[self addChildViewController:bViewController];
[self.scrollView addSubview:bViewController.view];
[bViewController didMoveToParentViewController:self];
self.scrollView.contentSize = CGSizeMake(960, self.view.frame.size.height);
self.scrollView.pagingEnabled = YES;
但是,目前我不确定如何让“旋转”元素工作(即在B 上滑动到Z),希望能提供任何帮助。
谢谢!
【问题讨论】:
-
您是否考虑过搜索
transitionWithView和UIView animate...方法的示例?还有一些不错的文章,例如ViewControllerTransitions。 -
感谢@andrewbuilder 的评论。只是想确保我理解 - 你的建议不是设置一个实际的
UIScrollView内部视图,而是我只有一个UIView只是基于滑动动画到不同的内容? -
免责声明:我之前没有尝试过,所以这些只是建议......是的,我想知道您是否有三个视图控制器可以在它们之间转换。有很多方法可以自定义视图转换。如果视图是三个独立的视图控制器,这可能更容易编码和稍后管理。否则,您可能正在考虑为滚动视图编写自定义动画。并不是说它不能完成,也许更难编码和管理。
-
我同意@andrewbuilder,我会使用 3 个控制器并为它们之间的过渡设置动画。我认为使用 UITabBarController (隐藏标签栏)将是一个很好的方法,因为它保留了指向所有控制器的指针(所以当你在它们之间移动时,你每次都会去同一个实例)。此外,能够使用 setSelectedIndex: 可以轻松转到所需的视图。
标签: ios objective-c uiviewcontroller uiscrollview