我正在使用这个问题的例子: 如何将UIScrollview与UIPagecontrol结合使用以显示不同的视图? 添加一个 UIScrollView
在我的iPad应用中包含多个子视图到一个页面。
我的应用程序顶部有一个大视图,底部有一个小框。底部的框是UIScrollView;用户将向左和向右滑动以显示该小部分中各种功能的框。顶部的大视图永远不会改变,所以我认为segues不合适。
我有一个故事板,里面有一个View Controller Scene。虽然我可以添加视图,但我无法设计“屏幕外”视图;换句话说,我无处可以绘制每个子视图。我怎样才能做到这一点?我是否需要为每个子视图制作单独的XIB?如果是这样,我该如何加载它们?或者,我应该做我的滚动视图(subview width * subview count
)宽并绘制与前一个相邻的每个视图?这是我的第一个iOS应用程序,所以我可能会有一些事情倒退。
谢谢
蒂姆
目前故事板并不适合这样做,但是你不应该使用单独的nib文件。相反,您应该使用其他viewControllers并根据需要设置每个视图。您必须记住在界面构建器中设置视图控制器的标识符,然后您可以像这样加载视图,
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@“MainStoryboard”bundle:nil];
UIViewController * myViewController = [storyboard instantiateViewControllerWithIdentifier:@“MyViewControllerIdentifierInIB”];
现在您拥有视图控制器,您可以访问视图并将其添加到任何您想要的位置。
注意:要更改视图的大小,您必须选择视图控制器并在界面构建器的属性检查器中将其大小更改为自由形式。然后,您将能够更改视图的大小。
目前故事板并不适合这样做,但是你不应该使用单独的nib文件。相反,您应该使用其他viewControllers并根据需要设置每个视图。您必须记住在界面构建器中设置视图控制器的标识符,然后您可以像这样加载视图,
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@“MainStoryboard”bundle:nil];
UIViewController * myViewController = [storyboard instantiateViewControllerWithIdentifier:@“MyViewControllerIdentifierInIB”];
现在您拥有视图控制器,您可以访问视图并将其添加到任何您想要的位置。
注意:要更改视图的大小,您必须选择视图控制器并在界面构建器的属性检查器中将其大小更改为自由形式。然后,您将能够更改视图的大小。
我也发现了,但最终你失去了故事板的目的,即向你展示你的图形应用程序的全流程。
我真正感到缺少的是一个新的可可对象,即UIPagedScrollController,当添加到故事板时,它将拥有类似于UIToolBarController和UINavigationController的自己的segue转换,但是它将包含UIPageControl和UIScrollView以实现魔法。
我最终发现我可以在单独的NIB中创建子视图。在子视图NIB中,我将File的Owner的标识设置为我的主视图控制器的类,并为子视图的视图控制器添加一个插座。然后我将NIB中的子视图链接到文件所有者中的那个插座。
最后在主视图控制器中 viewDidLoad
我为每个子视图NIB调用它:
[[NSBundle mainBundle] loadNibNamed:@"MySubView" owner:self options:nil];