我有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.但是,即使我增加自我视图的高度,仍然没有效果。
如何强制滚动?
答案 0 :(得分:3)
问题是你正在使用自动布局。尝试在代码中设置自动布局下滚动视图的contentSize
将失败。自动布局下的滚动视图内容大小以完全不同的方式工作:您将滚动视图的唯一直接子视图用作容器视图,按内容大小的内部约束调整大小,并将所有四个边都固定到滚动视图上{{1零。