UIScrollView不能滚动大的高度

时间:2016-03-14 18:17:42

标签: ios objective-c uiscrollview

我有UIScrollView控制器,在iPad版本中没有滚动从上到下。我明确地设置内容大小高度:

  CGSize newSize = CGSizeMake(self.view.bounds.size.width-4, 2500);
    // assume self is the content view
    CGRect newFrame = (CGRect){CGPointZero,newSize}; // Assuming you want to start at the top-left corner of the scroll view. Change CGPointZero as appropriate
    [self.mainScroll setContentSize:newSize];

即使在调试器中,当我打印scrollView的描述时,我会看到以下内容:

<UIScrollView: 0x7fc12486e400; frame = (0 0; 768 960); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7fc1259cf830>; layer = <CALayer: 0x7fc1259a45e0>; contentOffset: {0, 765}; contentSize: {764, 2500}>
(lldb) 

正如您所看到的,内容大小设置为2500,但是,我无法滚动任何内容。我明显检查,启用滚动是YES ..

此外,主滚动视图绑定到主视图,其中约束为左上角 - 右下角,值为0.但是,即使我增加自我视图的高度,仍然没有效果。

如何强制滚动?

1 个答案:

答案 0 :(得分:3)

问题是你正在使用自动布局。尝试在代码中设置自动布局下滚动视图的contentSize将失败。自动布局下的滚动视图内容大小以完全不同的方式工作:您将滚动视图的唯一直接子视图用作容器视图,按内容大小的内部约束调整大小,并将所有四个边都固定到滚动视图上{{1零。