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 中