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

Tim*_*Tim 11 xcode interface-builder ios5

我正在使用此问题中的示例:如何将UIScrollview与UIPagecontrol结合使用以显示不同的视图?UIScrollView在我的iPad应用中向页面添加包含多个子视图.

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

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

谢谢

蒂姆

Sco*_*ood 6

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

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

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

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

  • "不理想"是轻描淡写:AFAICS故事板主动阻止UIScrollView与内容的使用--IBM的所有"旧"功能都被Apple删除或强制禁用.苹果很快就克服了手指 (5认同)

Tim*_*Tim 2

我最终发现我可以在单独的 NIB 中创建子视图。在子视图 NIB 中,我将文件所有者的身份设置为主视图控制器的类,并向子视图的视图控制器添加出口。然后,我将 NIB 中的子视图链接到文件所有者中的该出口。

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

[[NSBundle mainBundle] loadNibNamed:@"MySubView" owner:self options:nil];
Run Code Online (Sandbox Code Playgroud)