UIScrollView 中的 UIViewControllers?

Posted

技术标签:

【中文标题】UIScrollView 中的 UIViewControllers?【英文标题】:UIViewControllers in UIScrollView? 【发布时间】:2011-09-28 08:00:58 【问题描述】:

我有一个设计问题。我有一个滚动视图,我想将其用作导航方式。 IE。用户可以在屏幕之间滑动。目前,我正在创建视图控制器并将它们的视图直接放在滚动视图上:

aViewController.view.frame=CGRectMake(0,0,320,200);    
[self.myScrollView addSubview:[aViewController view]]

等等,对于所有 3 个视图控制器。

我知道这不是最佳做法。但我想不出任何其他的方式来做到这一点。理想情况下,我希望获得与导航控制器相同的行为,除了我将使用滚动视图这一事实。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您必须注意,这会破坏某些 UIViewController 行为,因为这些子视图控制器不会收到有关界面旋转事件的通知,并且它们的 viewWill/Did(Dis)Appear: 方法将不起作用。

替代方案(至少在 ios 4.x 之前)是不为这些子视图使用 UIViewController 子类。您可以轻松创建自己的自定义控制器类(派生自 NSObject)来管理子视图。

不过,这种方法是否整体上更容易,还有待商榷。

【讨论】:

【参考方案2】:

我猜你想要实现的目标与此应用类似?

http://itunes.apple.com/us/app/fanhattan-for-ipad/id436928538?mt=8

此应用以相同的方式工作,使用滚动视图进行导航。你可以分析那个应用程序,你会从中得到一些想法,我敢肯定。

【讨论】:

以上是关于UIScrollView 中的 UIViewControllers?的主要内容,如果未能解决你的问题,请参考以下文章

水平 UIScrollView 中的多个垂直滚动 UIScrollView

检测 UIScrollView 中的滚动事件并发送到 UITableView 或其他 UIScrollView

UIScrollView 子视图中的水平 UISwipeGestureRecognizer ? (UIScrollView 只需要识别垂直滚动)

UIScrollView 中的 UITextView 都在另一个 UIScrollView 中

UIScrollView 中的 UITextView 中的键盘方向

uiscrollview 中的 uitableview(滚动问题)