我在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
答案 0 :(得分:4)
最终我发现scrollview的底部内容插图不是0而是49.目前还不清楚如何获得一个值,因为它没有在布局编辑器中设置,但我能够禁用垂直滚动如下:
[scrollView setContentInset:UIEdgeInsetsZero];
答案 1 :(得分:0)
UIView需要通过调用以下方法来关闭自动调整大小
[uiview setTranslatesAutoresizingMaskIntoConstraints];