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.
您可以将它放在故事板中。
单击您的viewController,然后在尺寸检查器中,设置模拟尺寸为 自由形式 并将宽度设置为 320
,将高度设置为 1136
。这会给你一个高瘦的布局。
向其添加一个滚动视图。将 scrollView 调整为全屏。将它的所有四个边固定到它的 superView。
- 向滚动视图添加一个
UIView
。这是您的内容视图。将内容视图调整为全屏。将其所有四个边固定到滚动视图。
- 在 contentView 和 scrollView 之间设置一个 Equal Widths 约束。这将只允许它垂直滚动。
- 为 contentView 设置
1136
的高度限制。
将你的 14 个按钮放在高处 viewController。
当您 运行 时,您的 contentView 将滚动。
我使用 swift 2.0 进行编程,我对在视图控制器上添加更多对象感到困惑。例如,我的视图控制器上需要 14 个具有所需约束的按钮。但是我只能在故事板上的视图控制器中一个一个地添加 7 个按钮。因为没有更多的地方可以在视图控制器上添加对象。那么,如何在故事板上的视图控制器中添加对象数量?请参考以下屏幕截图。感谢朋友们的帮助。
在故事板上查看控制器:
我只能添加 7 个具有适当约束的按钮。但我需要添加 14 个具有适当约束的按钮。当视图控制器滚动时,按钮 8 到 14 将分别显示按钮 1 到 7。
在 iPhone 5 上输出,无滚动视图 :
iPhone 4s 滚动视图输出:
您可以使用一些代码而不是 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.
您可以将它放在故事板中。
单击您的viewController,然后在尺寸检查器中,设置模拟尺寸为 自由形式 并将宽度设置为
320
,将高度设置为1136
。这会给你一个高瘦的布局。向其添加一个滚动视图。将 scrollView 调整为全屏。将它的所有四个边固定到它的 superView。
- 向滚动视图添加一个
UIView
。这是您的内容视图。将内容视图调整为全屏。将其所有四个边固定到滚动视图。 - 在 contentView 和 scrollView 之间设置一个 Equal Widths 约束。这将只允许它垂直滚动。
- 为 contentView 设置
1136
的高度限制。 将你的 14 个按钮放在高处 viewController。
当您 运行 时,您的 contentView 将滚动。