如何使用UIScrollView将按钮放在屏幕外?

时间:2012-06-03 08:22:12

标签: ios uiviewcontroller uiscrollview

我有一个很长的ViewController,里面装满了视图控件(我放置了)。没有足够的空间同时显示所有标签,文本字段等,所以我想使用UIScrollView(或类似的东西),以便用户可以向下滚动页面并查看其余控件。但是,我尝试在ViewController的顶部拖动UIScrollview,然后尝试拖动,但我根本无法拖动屏幕。我该怎么做才能启用此“滚动”功能。这不是TableView - 只是一个常规的ViewController。

6 个答案:

答案 0 :(得分:1)

我不确定您的问题是您是否希望在XCode中滚动(您不能)或在您执行代码时滚动。

为了在运行应用程序时滚动视图,滚动视图的内容需要大于其框架。 因此,假设iPhone上的帧是全屏(0,0,320,460),如果你要写:

[self.scrollView setContentSize:CGSizeMake(400, 460)];

然后滚动视图将水平滚动以显示剩余的80个像素。

答案 1 :(得分:1)

以通常的方式创建uibutton,以通常的方式链接它。 (在 .h 文件中创建出口和操作是我目前正在做的事情),然后告诉计算机你真正希望它在哪里使用:

myButton.frame = CGRectMake(20, 800, 90, 30); //in viewDidLoad is where I put it

查看此主题:How to change the position of a UIButton dynamically

注意:
如果您将myButton设为scrollView之外的其他视图的子视图,则此功能无效。至少在我的情况下,这不起作用。可以看到该按钮,但点击该按钮不会激活关联的IBAction

这有效:

[scrollView addSubview:myButton];

虽然似乎没必要。

答案 2 :(得分:0)

您需要在底部设置滚动视图,然后粘贴所有视图控制器。

答案 3 :(得分:0)

首先将UIScrollView拖到当前视图中

然后开始复制粘贴其中的所有视图,形成原始视图

请检查此答案 Are there any good UIScrollView Tutorials on the net?

答案 4 :(得分:0)

我相信您正在使用Interface Builder / storyboard来布局您的内容。请按照以下步骤操作:

  1. 像你一样在IB中布置你的UIScrollView。在尺寸检查器中将其宽度和高度设置为320×460。
  2. 将scrollview作为IBOutlet连接到.h文件。我将它命名为scrollView。
  3. 将scrollview的contentSize设置为大于其框架。例如

    self.scrollView.contentSize = CGSizeMake(320.0f, 1000.0f);
    
  4. 在IB中添加UIView到scrollView。 UIView的大小应与scrollview的contentSize相同。

  5. 在UIView上布置内容时,在Size Inspector中将UIView的Y设置为-400(或您想要偏移的任何值),您将能够在UIView中布置更多元素。

答案 5 :(得分:0)

这是一种更好的方法:

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

我在这里找到了这段代码:How do I create a basic UIButton programmatically?,由mahboudz发布

这与我上面提到的基本相同,但是所有这些都是以编程方式进行的,它带有您应该(尚未尝试过)的奖励,例如,能够使用for循环创建多个这样的按钮。