故事板的UIScrollView contentSize?

问题描述 投票:15回答:7

我觉得我对每一个可能的原因感动停止这一点,但我有我的故事板一个UIScrollView迷上了一个出口,并在viewDidLoad中我设置了contentSize,这样我可以滚动(是不是我的帧大小大)!

不过,无论我改变,我只是不能滚动!我有几个文本框的滚动视图我的弹跳和启用,所以我可以看到,在它与我的子视图向上和向下测试其移动,但无论当我设置contentSize到我不能滚动。

什么我可能会丢失/应检查?这是一个已知问题的UIScrollView在故事板被使用?

什么更奇怪的是,我可以做这样的事情:[scrollView setBackgroundColor:[UIColor blueColor]];,我有一个蓝色的滚动视图!但是设定内容大小失败。

编辑

我唯一的代码(否则滚动视图只是投进故事板视图控制器):

-(void)viewDidAppear:(BOOL)animated
{
    [scrollView setContentSize:CGSizeMake(320, 640)];
}

登录框,出来的预期:

width: 320.00
height: 504.00

编辑2

原来,除去我的故事板滚动视图中的任何子视图让它滚动就好了。如果我在所有通过故事板的任何子视图添加到它,甚至是空白的全新的UIButton它只是将不适用contentSize /允许滚动。

iphone objective-c ipad uiscrollview storyboard
7个回答
47
投票

使用ViewDidLayoutSubview

- (void)viewDidLayoutSubviews
{
    [_scrollView setContentSize:CGSizeMake(320, 500)];
}

UIViewController的方法调用序列如下

  • awakeFromNib
  • viewDidLoad中
  • viewWillAppear中
  • viewWillLayoutSubviews
  • viewDidLayoutSubviews
  • viewDidAppear

5
投票

viewDidLoad中是不把依靠IB对象的帧大小码的好地方。如果您需要登录viewDidLoad中滚动视图的contentSize,你会发现它是(0,0)。代码(你设置的内容的大小)移动到viewDidAppear,它会正常工作。


4
投票

检查这些

  • 用户交互启用
  • 出口连接
  • 包括contentsize比范围更大
  • 滚动启用

例如

scrollView.contentSize = CGSizeMake(320, 640);

我的故事板看起来像这样了滚动[工作]


3
投票

我有完全相同的代码在同一行中viewDidAppear并没有奏效

它搬到viewDidLayoutSubviews,它工作正常。

[scrollView setContentSize:CGSizeMake(320, 500)];

感谢trick14的答案。


3
投票

问题是最有可能与自动布局。使用的UIScrollView自动版式时需要特别注意。

速战速决 - 绑定滚动的子视图到它的顶部和底部空间的一个是上海华(滚动视图)。

龙的故事:在做题:qazxsw POI,qazxsw POI,qazxsw POI

苹果的文档:UIScrollView not scrolling regardless of large contentSize


1
投票

Trip14的回答为我工作。在SWIFT我编写它:

UIScrollView will not scroll, even after content size set

0
投票

这似乎是一个类似的问题。 UIScrollView doesn't use autolayout constraints

这可能是在故事板自动布局或限制的问题。

© www.soinside.com 2019 - 2024. All rights reserved.