2015-07-11 113 views
0

我試圖讓滾動視圖根據此頁面上子視圖的大小調整大小。圖片中對象的所有其他約束都可以正常工作。根據子視圖的內容大小調整滾動視圖

Imgur

當我添加約束到我的子視圖摟向左側,右側,並在屏幕的底部(與子視圖擁抱到分段控制的底部的頂部),然後更新幀,它使子視圖的0

Imgur

我不能高度約束添加到子視圖的高度,因爲子視圖的大小會動態變化取決於在其內容物的量,這將隨後更改滾動視圖的大小。

如何在不添加高度限制的情況下完成此操作?

回答

1

您的視圖層次應該是這樣的:

view hierarchy

創建的UIScrollView的一個子視圖,我們將會把我們的內容的所有

內容視圖必須的顯式大小(或在界面構建器中設置的 中的佔位符大小,並在運行時設置)。換句話說,您的內容 視圖不能依靠滾動視圖來獲取其大小。但是,它可以依靠滾動視圖外部的視圖來獲取其大小。

從蘋果技術說明TN2154

  • 設置translatesAutoresizingMaskIntoConstraints爲NO所涉及的所有視圖 。

  • 位置以及與外部 滾動視圖限制大小滾動視圖。

  • 使用約束到 滾動視圖中鋪陳子視圖,是確保約束綁的 滾動視圖四邊不靠滾動視圖來獲取它們的大小。

    UIScrollView And Autolayout

    Using UIScrollView with Auto Layout in iOS

+0

我很抱歉,但我很困惑你的答案。爲什麼我不能將子視圖綁定到滾動視圖的左側和右側,並將子視圖的頂部綁定到分段控件的底部?我的層次結構像你說的那樣結構化。滾動視圖對視圖的所有四個角都有約束。如果我將子視圖的頂部綁定到滾動視圖的頂部,則子視圖將根據屏幕大小移動所有內容 –

+0

您可以共享您的視圖層次結構和滾動視圖和內容視圖的約束,基本上您需要是1)將視圖0滾動到所有邊2)具有明確寬度和高度的內容視圖(它可以基於內容視圖內的視圖計算)如果以正確的方式設置約束,Autolay會自動計算內容大小 – Aladin

+0

好吧,我開始明白你現在在說什麼,但我想我只是不明白爲什麼Xcode會這樣做,以便我需要在滾動視圖頂部的另一個視圖,看到滾動視圖本身應該採取行動作爲某種類型的內容容器。如何根據內容中的視圖製作內容視圖高度更改? –

0

嘗試給Equl Heights & Equal Width約束你的子視圖。

Equal Width & Equal Heights

相關問題