在
Xcode6中使用
Swift for iOS8,我需要创建一个滚动视图,滚动浏览动态创建的卡片.这些卡包含自己独特的图像,文本和按钮功能,但共享相同的布局.我无法理解如何在故事板中创建一个可重复使用的视图控制器,我可以从中构建每张卡,然后将它们全部嵌入到滚动视图容器中,以便我可以一次滑过它们.
通常情况下,我想询问有关Stack Overflow的更具体问题,但经过数小时的研究,我不知所措.非常感谢您的帮助!
您正在寻找自定义容器视图控制器.
如果以编程方式执行此操作,则在父控制器上调用addChildViewController(从而将子视图控制器添加到视图控制器层次结构中),执行子视图的所有配置(包括将其添加到父控制器的视图层次结构中),然后在最后,在子上调用didMoveToParentViewController:
let childController = self.storyboard?.instantiateViewControllerWithIdentifier("storyboardIdForChildScene") as UIViewController! addChildViewController(childController) childController.view.frame = ... scrollView.addSubview(childController.view) childController.didMoveToParentViewController(self)
在以编程方式删除时,您可以反转此过程,在子节点上调用willMoveToParentViewController:nil,从其超级视图中删除子视图,完成所有操作后,调用removeFromParentViewController:
childController.willMoveToParentViewController(nil) childController.view.removeFromSuperview() childController.removeFromParentViewController()
如果在Interface Builder中执行此操作,则更容易,只需将“容器视图”从“对象库”拖到父视图控制器的场景中:
有关如何执行此操作的详细信息,请参阅View Controller编程指南中的Create Custom Container View Controllers.有关为什么执行这些包含调用以使视图控制器层次结构与视图层次结构保持同步的重要性的讨论,请参阅WWDC 2011视频Implementing UIViewController Containment.