我有一个很长的 ViewController,里面装满了视图控件(我放置的)。没有足够的空间一次显示所有标签、文本字段等,所以我想使用 UIScrollView(或类似的东西),这样用户就可以向下滚动页面并查看其余控件。但是,我尝试将 UIScrollview 拖动到 ViewController 上,然后尝试拖动,但我根本无法拖动屏幕。我能做些什么来启用这个“滚动”功能。这不是 TableView - 只是一个普通的 ViewController。
6 回答
我不确定您的问题是您是否希望在 XCode 中滚动(您不能)或在执行代码时滚动。
为了在运行应用程序时滚动视图,滚动视图的内容需要大于其框架。因此,假设框架在 iPhone 上是全屏的(0,0,320,460),如果你要写:
[self.scrollView setContentSize:CGSizeMake(400, 460)];
然后滚动视图可以水平滚动以显示剩余的 80 像素。
以通常的方式创建您uibutton
的,以通常的方式链接它。(在.h文件中创建出口和操作是我目前正在做的事情),然后告诉计算机您实际希望它使用的位置:
myButton.frame = CGRectMake(20, 800, 90, 30); //in viewDidLoad is where I put it
查看此线程: 如何动态更改 UIButton 的位置
注意:
如果您创建myButton
视图的子视图而不是scrollView
. 至少在我的情况下,这不起作用。可以看到该按钮,但单击它并没有激活关联的IBAction
.
这有效:
[scrollView addSubview:myButton];
虽然这似乎没有必要。
您需要在底部设置滚动视图,然后将所有视图控制器粘贴在上面。
这是一种更好的方法:
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];
我在这里找到了这段代码:如何以编程方式创建基本的 UIButton?, 由 mahboudz 发布
这与我上面所说的基本相同,但都是以编程方式完成的,这带来了你应该(还没有尝试过)的好处,例如,能够使用 for 循环创建多个这样的按钮。
我相信您正在使用 Interface Builder / storyboard 来布局您的内容。按着这些次序:
- 像你一样在 IB 中布局你的 UIScrollView。在 Size Inspector 中将其宽度和高度设置为 320 x 460。
- 将滚动视图作为 IBOutlet 连接到您的 .h 文件。我将它命名为scrollView。
将滚动视图的 contentSize 设置为大于其框架。例如
self.scrollView.contentSize = CGSizeMake(320.0f, 1000.0f);
在 IB 中将 UIView 添加到 scrollView。UIView 的大小应该与滚动视图的 contentSize 相同。
- 在 UIView 上布局内容时,将 Size Inspector 中的 UIView 的 Y 设置为 -400(或您想要偏移的任何值),您将能够在 UIView 中布局更多元素。