2014-11-04 62 views
21

因此,我試圖僅在故事板中創建UIScrollView,允許我爲VC的高度添加滾動標籤。下面是我所做的:故事板中的UIScrollView不能與iOS 8一起使用Size Classes和Autolayout

  1. 創建UIScrollView是拿起任意寬度的大小任意高度VC

  2. 製造約束0間距頂部,底部,左側近鄰,右

  3. 創建了UIScrollViewsubView的視圖,其寬度與任何高度爲VC但高度爲1500的寬度相同(因爲我只希望它垂直滾動)。

  4. 設置約束近鄰爲0只左,上,右,並設置高度約束爲1500

  5. 我把一個標籤在subView的頂部和底部

當我在iPhone 6上運行應用程序時,不會像我想要的那樣垂直滾動。任何想法爲什麼這不起作用?提前致謝。

回答

45

要獲得滾動,您必須將子視圖(「內容視圖」)固定在滾動視圖的頂部,左側,底部和右側。 另外,你必須給它(對「內容視圖」)一個明確的(與滾動視圖無關的)高度和寬度,因爲這些被scrollview用來計算它的內容大小。 你的情況設置寬度等於VC主視圖寬度和高度爲1500. 當寬度或高度大於scrollview大小時,它將滾動。

滾動視圖約束(固定到主視圖)

scroll view constraints

內容視圖(固定到滾動型+高度1500,寬度= MAINVIEW寬度)+標籤約束(作爲一個例子:20 20從內容視圖左上圖)

content view + label constraints

+0

完美!它現在按預期工作,感謝您的幫助;圖像很棒。 – Lucas 2014-11-06 22:40:08

+0

這是一個夢幻般的解釋!非常感謝。 我還能夠在Interface Builder中添加[contentView.width == scrollView.width]約束,而不是明確的contentView寬度,以輕鬆獲得垂直滾動滾動視圖。 – Des 2014-12-19 12:04:13

+1

這不再適用於Xcode版本6.1.1(6A2008a)。有其他人遇到過這個問題嗎?將內容視圖固定到滾動視圖將導致在我的測試中沒有任何內容顯示這個簡單的新項目。 – kakubei 2015-01-30 11:46:40

1

你是否將內容大小設置得比屏幕本身大?就你而言,身高只有更大。

正如Apple文檔所述: 「必須將contentSize屬性設置爲可滾動內容的大小,這指定了可滾動區域的大小。」

+0

如上所述,滾動視圖從內容視圖推斷其內容大小 – Lucas 2014-11-06 22:22:54

+1

因此,我們如何才能通過使用故事板先生來實現這一點? – guness 2015-03-03 21:41:42

0

唯一的解決辦法是添加約束到滾動視圖的子視圖的底部子視圖的右側和底部。 同時檢查從上到下的所有視圖是否都有適當的約束以及高度。 對於滾動視圖的包裝視圖,將等寬和等高限制添加到其超視圖。