我觉得我对每一个可能的原因感动停止这一点,但我有我的故事板一个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 /允许滚动。
使用ViewDidLayoutSubview
- (void)viewDidLayoutSubviews
{
[_scrollView setContentSize:CGSizeMake(320, 500)];
}
UIViewController的方法调用序列如下
- awakeFromNib
- viewDidLoad中
- viewWillAppear中
- viewWillLayoutSubviews
- viewDidLayoutSubviews
- viewDidAppear
viewDidLoad中是不把依靠IB对象的帧大小码的好地方。 如果您需要登录viewDidLoad中滚动视图的contentSize,你会发现它是(0,0)。 代码(你设置的内容的大小)移动到viewDidAppear,它会正常工作。
检查这些
- 用户交互启用
- 出口连接
- 包括contentsize比范围更大
- 滚动启用
例如
scrollView.contentSize = CGSizeMake(320, 640);
我的故事板看起来像这样了滚动[工作]
我有完全相同的代码在同一行中viewDidAppear并没有奏效
它搬到viewDidLayoutSubviews, 它工作正常。
[scrollView setContentSize:CGSizeMake(320, 500)];
感谢trick14的答案。
问题是最有可能与自动布局。 使用的UIScrollView自动版式时需要特别注意。
速战速决 - 绑定滚动的子视图到它的顶部和底部空间的一个是上海华(滚动视图)。
龙的故事:在做题: UIScrollView的不是不管大contentSize的滚动 , UIScrollView的不会滚动,甚至在内容大小设置 , UIScrollView中不使用自动布局约束
苹果的文档: https://developer.apple.com/library/ios/technotes/tn2154/_index.html
Trip14的回答为我工作。 在SWIFT我编写它:
override func viewDidLayoutSubviews() {
(self.view as! UIScrollView).contentSize = CGSizeMake(600, 600)
}