Xcode 7.2如何使用Storyboard布局比屏幕高的屏幕内容?

How to use Storyboard to lay out screen content that is taller than the screen on Xcode 7.2?

我使用 swift 2.0 进行编程,我对在视图控制器上添加更多对象感到困惑。例如,我的视图控制器上需要 14 个具有所需约束的按钮。但是我只能在故事板上的视图控制器中一个一个地添加 7 个按钮。因为没有更多的地方可以在视图控制器上添加对象。那么,如何在故事板上的视图控制器中添加对象数量?请参考以下屏幕截图。感谢朋友们的帮助。

在故事板上查看控制器:

我只能添加 7 个具有适当约束的按钮。但我需要添加 14 个具有适当约束的按钮。当视图控制器滚动时,按钮 8 到 14 将分别显示按钮 1 到 7。

在 iPhone 5 上输出,无滚动视图 :

iPhone 4s 滚动视图输出:

我在 iPhone 5 上需要这样,但需要 14 个按钮。 8到14个按钮分别排列1到7个按钮。

您可以使用一些代码而不是 Storyboard 轻松添加按钮。

    let scrView = UIScrollView(frame: CGRect(x: 0, y: 0, width: SCR_W, height: SCR_H))
    for idx in 1...14 {
        let button = UIButton(frame: CGRectMake(0, 0, btnWidth, btnHeight))
        button.center = CGPointMake(SCR_W/2, offset * idx)
        button.setTitle("Button\(idx)", forState: .Normal)
        button.tag = idx
        button.addTarget(self, action: #selector(self.onClick(_:)), forControlEvents: .TouchUpInside)
        scrView.addSubview(button)
    }

    scrView.contentSize = CGSizeMake(SCR_W, offset * 14)
    self.view.addSubView(scrView)

    -------->

    func onClick(let btn:UIButton) -> Void {
    switch btn.tag {
       case 1:
       case 2:
       case 3: 
     ...  ... ...
       default:

    }
}

您可以在 Storyboard 中更改 viewController 大小。

select viewController 并将大小更改为 Freedom(图 1)

   fig1.

select viewController 视图并更改框架。 (图 2.)

   fig2.

您可以将它放在故事板中。

  1. 单击您的viewController,然后在尺寸检查器中,设置模拟尺寸 自由形式 并将宽度设置为 320,将高度设置为 1136。这会给你一个高瘦的布局。

  2. 向其添加一个滚动视图。将 scrollView 调整为全屏。将它的所有四个边固定到它的 superView。

  3. 向滚动视图添加一个UIView。这是您的内容视图。将内容视图调整为全屏。将其所有四个边固定到滚动视图。
  4. 在 contentView 和 scrollView 之间设置一个 Equal Widths 约束。这将只允许它垂直滚动。
  5. 为 contentView 设置 1136 的高度限制。
  6. 将你的 14 个按钮放在高处 viewController。

当您 运行 时,您的 contentView 将滚动。