2014-10-19 73 views
2

我創建了一個水平滾動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

回答

0

我已經解決了它描述了一個內部「內容」視圖來包裝它的子視圖。我只需指定第一個按鈕的高度等於滾動視圖高度,同時保留頂部和底部約束。這必須更新了滾動視圖的內容大小,因爲其他按鈕被設置爲僅對超視圖具有頂部和底部約束,以便填充先前存在該填充的空間。 Interface Builder中沒有警告或錯誤,並按預期在我的設備上顯示。

+0

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