如何将对象添加到从Storyboard延伸到UIView之外的UIScrollView?

我想在我的应用程序中的长UIScrollView有几个button和其他对象。 在故事板中,我添加了一个UIScrollView来填充entre视图,然后在我的.h文件中创build一个IBOutlet 。 我在.m文件中合成了滚动条,然后使用下面的代码来启动滚动条:

 @synthesize scroller = _scroller; - (void)viewDidLoad { [super viewDidLoad]; [_scroller setScrollEnabled:YES]; [_scroller setContentSize:CGSizeMake(640, 3000)]; } 

所以现在我需要知道如何实际添加诸如button之类的东西到视图中可以看到的下方的滚动区域。 我的问题是,因为我在故事板中添加了button,所以我只能在视图中添加东西,因此需要知道如何将button添加到将滚动到的部分!

希望这是明确的。 感谢你的帮助!

UPDATE

我已经发布了一个屏幕录像,逐步介绍了这种技术 。

原版的

处理这个问题的最简单的方法就是让故事板中的视图更高。 当应用程序运行时,任何正常的容器视图控制器( UINavigationControllerUITabBarControllerUISplitViewController ,甚至UIViewController当它是其窗口的根视图控制器时)都将调整视图大小以适应屏幕并滚动。

这是一个如何在Xcode中设置的例子:

xcode调整故事板视图的过程

我将视图控制器的大小从“推断”改为“自由forms”。 然后我把视图的高度从460改为800.(顺便说一句,control-shift-click给你一个光标下所有对象的菜单。)

以下是我在模拟器中运行时发生的情况:

模拟器运行示例应用程序

正如你所看到的那样,视图层次结构被resize以适应屏幕,但是UIScrollView的子视图没有被重新定位,并且滚动视图适当地设置了它的内容大小。 (这可能只适用于自动布局,虽然…)

所以,给你一个例子如何添加一个Button:

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [btn setTitle:@"Cool title" forState:UIControlStateNormal]; [btn setFrame:CGRectMake(50, 700, 100, 100)]; [btn addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; [_scroller addSubview:btn]; 

您只需设置要添加的视图的框架,然后将其作为子视图添加到滚动中。

你可以使用Size检查器(xcode的左边部分)来定位它。 或以编程方式重新定位。

干杯,凯尔