从水平删除额外的底部填充UIScrollView

问题描述:

我创建了一个水平滚动UIScrollView其中包含UIButton s。我想要UIButton s填充UIScrollView的高度,所以我设置了按钮的自动布局:顶部空间和底部空间设置为Superview,常量为0.在Interface Builder中,它显示正确的UIScrollView帧大小,但按钮是10像素太小 - 按钮下方有额外的填充。滚动视图的高度是44像素,按钮高度是34像素。从水平删除额外的底部填充UIScrollView

我认为这可能是因为它保留了一些显示水平滚动条的空间。但我禁用了IB中的显示水平指示器。然后,我试图以编程方式通过下面的代码删除空间,但这并没有改变任何东西。

self.automaticallyAdjustsScrollViewInsets = false 
scrollView.contentInset = UIEdgeInsetsZero 
scrollView.scrollIndicatorInsets = UIEdgeInsetsZero 
scrollView.contentOffset = CGPointMake(0, 0) 

编辑:它不能与保留滚动条的空间有关。滚动视图的高度等于另一个按钮的高度。当我更改该按钮的高度以更改滚动视图高度时,底部间距的数量会增加。按钮总是34pt高。

我试过的另一件事是删除底部空间并添加一个固定的高度限制,但这会导致模糊的滚动视图高度。

如何删除此填充以便按钮是滚动视图高度的确切高度?

界面生成器:
enter image description here

运行的应用程序:
enter image description here
(我暂时已取消隐藏滚动条显示在这里它)
我需要的白色按钮在高度上伸展来掩盖它下面的灰色区域。

+0

无论滚动视图的高度如何,它总是10pt的差异吗? – hlfcoding 2014-10-19 17:46:29

+0

@hlfcoding滚动视图的高度等于另一个按钮的高度。当我更改该按钮的高度以更改滚动视图高度时,间距的数量会增加!按钮总是34pt高。所以它与为滚动条保留的空间无关。将更新问题。 – Joey 2014-10-19 18:00:58

我已经解决了它描述了一个内部“内容”视图来包装它的子视图。我只需指定第一个按钮的高度等于滚动视图高度,同时保留顶部和底部约束。这必须更新了滚动视图的内容大小,因为其他按钮被设置为仅对超视图具有顶部和底部约束,以便填充先前存在该填充的空间。 Interface Builder中没有警告或错误,并按预期在我的设备上显示。

+0

http://*.com/questions/24691614/why-is-uiscrollview-leaving-space-on-top-and-does-not-scroll-to-the-bottom – 2016-03-16 07:19:58

我相信的UIScrollView与自动版式工作,你就需要为https://developer.apple.com/library/ios/technotes/tn2154/_index.html