尽管内容正确,UIScrollview仍会垂直滚动

时间:2014-09-09 09:35:05

标签: ios objective-c iphone uiview uiscrollview

我在UIScrollView中有一个UIView。 UIScrollView具有以下约束:

-Top space to superview equals 0
-Leading space to superview equals 0
-Width equals 320.0f
-Height equals 45.0

UIView具有以下约束:

-Top space to superview equals 0
-Bottom space to superview equals 0
-Leading space to superview equals 0
-Trailing space to superview equals 0
-Width equals 320.0
-Height equals 45.0

据我所知,这应该禁用所有滚动。但是,我仍然能够垂直滚动到最大偏移量49.0。所有尺寸似乎都是正确的:

(lldb) po scrollView.contentSize
(width=420, height=45)
 {
  320

  45

}
(lldb) po scrollView
<UIScrollView: 0x10c332980; frame = (0 0; 320 45); clipsToBounds = YES; autoresize = RM+TM; gestureRecognizers = <NSArray: 0x10c333b80>; layer = <CALayer: 0x10c32c530>; contentOffset: {0, 49}>
(lldb) po contentView
<UIView: 0x10c332400; frame = (0 0; 320 45); autoresize = W+H; layer = <CALayer: 0x10c3324c0>>

但是UIScrollView仍然可以垂直滚动。有人知道这是怎么回事吗?

编辑:

新信息:问题仅发生在iOS 7.1上,而不是iOS 6.1

2 个答案:

答案 0 :(得分:4)

最终我发现scrollview的底部内容插图不是0而是49.目前还不清楚如何获得一个值,因为它没有在布局编辑器中设置,但我能够禁用垂直滚动如下:

[scrollView setContentInset:UIEdgeInsetsZero];

答案 1 :(得分:0)

UIView需要通过调用以下方法来关闭自动调整大小

[uiview setTranslatesAutoresizingMaskIntoConstraints];