【问题标题】:UIScrollview not scrolling what am i doing wrongUIScrollview 不滚动我做错了什么
【发布时间】:2013-06-12 11:21:08
【问题描述】:

我有一个问题,我将 UIScrollview 添加到我的 UIViewController,但我的 UIScrollview 不想滚动。我希望它的工作方式与它在 UITableViewController 上的工作方式相同。

在这里我初始化我的 UIScrollview

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 800)];
scroll.contentSize = CGSizeMake(320, 800);
scroll.backgroundColor = [UIColor redColor];
scroll.showsHorizontalScrollIndicator = YES;
scroll.scrollEnabled = YES;
scroll.userInteractionEnabled=YES;
[self.view addSubview:scroll];

在这里我将我的内容添加到滚动视图中:

UILabel *memberNo = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 20)];
memberNo.text = @"Member No";
memberNo.font = [UIFont boldSystemFontOfSize:16];
memberNo.textColor = [UIColor limeColor];
[scroll addSubview:memberNo];

memberText = [[UITextField alloc] initWithFrame:CGRectMake(10, 40, 300, 30)];
memberText.placeholder = @"Member No";
memberText.borderStyle = UITextBorderStyleRoundedRect;
memberText.text = @"1111111";
[scroll addSubview:memberText];

【问题讨论】:

标签: uiscrollview


【解决方案1】:

试试这个

设置内容大小大于屏幕大小,不管有没有内容都会滚动

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 800)];

水平滚动

 scroll.contentSize = CGSizeMake(320, 900);

垂直滚动

scroll.contentSize = CGSizeMake(340, 800);

【讨论】:

    【解决方案2】:

    正如其他人所说,滚动视图的大小(特别是其bounds.size)必须小于其contentSize才能真正滚动。

    您可能希望滚动视图适合其父视图,因此请尝试将其框架设置为父视图的边界:

    UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:self.view.bounds];
    

    【讨论】:

      【解决方案3】:

      内容与滚动视图大小相同:没有可滚动的内容。

      滚动视图需要包含一个比它自己的大小更大的视图。

      【讨论】:

      • 我需要做什么才能使其可滚动?如果可能的话,你能给我一个代码示例吗?
      • 正如我在回答中所说 - 内容需要大于滚动视图。
      • 设置内容大小大于屏幕大小,不管有没有内容都会滚动。
      【解决方案4】:

      尝试将contentSize 设置为大于框架。例如:

      scroll.contentSize = CGSizeMake(1000, 800);
      

      如果这不起作用,请检查您设置内容大小的位置。你在哪里初始化UIScrollView?尝试将以上行移至viewWillAppearviewDidLayoutSubviews

      【讨论】:

        【解决方案5】:
        滚动视图的

        frame 是指滚动视图本身的大小,而content size 是要在滚动视图中显示的视图的大小。如果要在滚动视图中显示的视图大小小于滚动视图框架大小,则它根本不会滚动,但是如果您将内容大小设置得更大,则滚动视图必须滚动以显示“额外”尺寸大于其自身的框架尺寸。 例如如果滚动视图的高度为 100,并且您将内容大小的高度因子设置为 150,那么这额外的 50 个像素将是可滚动的。

        祝你好运!

        【讨论】:

          猜你喜欢
          • 2012-09-12
          • 1970-01-01
          • 2014-04-18
          • 1970-01-01
          • 1970-01-01
          • 2011-06-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多