33

我想UIScrollView在我的应用程序中有几个按钮和其他对象。在情节提要中,我添加了一个UIScrollView来填充 entre 视图,然后IBOutlet在我的 .h 文件中创建了一个。我在 .m 文件中合成了滚动条,然后使用以下代码启动滚动条:

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

所以现在我需要知道如何将诸如按钮之类的东西实际添加到滚动条区域,该区域延伸到您在视图中可以看到的区域下方。我的问题是,当我在情节提要的视图中添加按钮时,我只能将内容添加到您在视图中可以看到的内容中,因此需要知道如何将按钮添加到我将滚动到的部分!

希望这很清楚。感谢你的帮助!

4

3 回答 3

115

更新

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

原来的

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

下面是如何在 Xcode 中进行设置的示例:

用于调整情节提要视图大小的 xcode 过程

我将视图控制器的大小从“推断”更改为“自由形式”。然后我将其视图的高度从 460 更改为 800。(顺便说一下,control-shift-click 为您提供了光标下所有对象的菜单。)

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

运行示例应用程序的模拟器

如您所见,视图层次结构已调整大小以适应屏幕,但未UIScrollView重新定位子视图,并且滚动视图适当地设置了其内容大小。(不过,这可能只适用于自动布局......)

于 2013-06-03T02:41:30.997 回答
2

所以,给你一个如何添加按钮的例子:

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];

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

于 2013-06-03T02:13:06.533 回答
0

您可以使用大小检查器(xcode 的左侧)来定位它。或以编程方式重新定位它。

干杯,凯尔

于 2013-06-03T02:16:51.510 回答