在使用iOS5故事板时,如何设计UIScrollView的子视图?

时间:2011-11-20 19:46:35

标签: xcode interface-builder ios5

我正在使用此问题中的示例:How to combine UIScrollview with UIPagecontrol to show different views?将包含多个子视图的UIScrollView添加到我的iPad应用中的页面。

我的应用在顶部有一个大视图,底部有一个小框。底部的框是UIScrollView;用户将向左和向右滑动以显示该小部分中各种功能的框。顶部的大视图永远不会改变,所以我认为segues不合适。

我有一个故事板,里面有一个View Controller Scene。虽然我可以为此添加视图但我无法设计“屏幕外”视图;换句话说,我无处可以绘制每个子视图。我怎样才能做到这一点?我是否需要为每个子视图制作单独的XIB?如果是这样,我该如何加载它们?或者,我是否应该将我的滚动视图(subview width * subview count)放宽并绘制与前一个视图相邻的每个视图?这是我的第一个iOS应用程序,所以我可能会有一些事情倒退。

由于

3 个答案:

答案 0 :(得分:6)

目前故事板不适合这样做,但是你不应该使用单独的nib文件。相反,您应该拉上其他viewControllers并根据需要设置每个视图。您必须记住在界面构建器中设置视图控制器的标识符,然后您可以像这样加载视图,

UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@“MainStoryboard”bundle:nil];         UIViewController * myViewController = [storyboard instantiateViewControllerWithIdentifier:@“MyViewControllerIdentifierInIB”];

现在您拥有视图控制器,您可以访问视图并将其添加到任何您想要的位置。

注意:要更改视图的大小,您必须选择视图控制器并在界面构建器的属性检查器中将其大小更改为自由形式。然后,您将能够更改视图的大小。

答案 1 :(得分:4)

我也发现了这一点,但最终你失去了故事板的目的,即向你展示你的图形应用程序的全部流程。

我真正感到缺少的是一个新的可可对象,即UIPagedScrollController,当添加到故事板时,它将拥有类似于UIToolBarController和UINavigationController的自己的segue转换,但是它将包含UIPageControl和UIScrollView以实现魔法。< / p>

答案 2 :(得分:2)

我最终发现我可以在单独的NIB中创建子视图。在子视图NIB中,我将File的Owner的标识设置为我的主视图控制器的类,并为子视图的视图控制器添加一个插座。然后,我将NIB中的子视图链接到文件所有者的那个插座。

最后在主视图控制器的viewDidLoad中,我为每个子视图NIB调用它:

[[NSBundle mainBundle] loadNibNamed:@"MySubView" owner:self options:nil];