簡體   English   中英

在 UIScrollView 中設置視圖的內容大小

[英]Setting the content size of a view inside UIScrollView

我必須在 View Controller 中布置一些視圖,運行時應如下所示。

在此處輸入圖片說明

最初,白色視圖應該部分覆蓋底部的藍色視圖,如圖所示。 藍色視圖應該保持原樣,而底部的白色視圖可以在藍色視圖上滾動。

我將藍色視圖添加到視圖控制器的主 UIView。 然后在藍色視圖之上添加一個 UIScrollView 並將白色視圖添加到滾動視圖上。

現在我遇到了可怕的模棱兩可的內容大小錯誤。 我已將滾動視圖固定在所有四個側面。 然后向白色視圖添加前導、底部和尾隨約束。 然后我嘗試向白色視圖添加頂部約束,但錯誤仍然存​​在。 我還向白色視圖添加了高度約束,但無濟於事。

想象我的設置可能很困難,所以我 也在這里添加了一個演示項目。

我在 這里為你設置了限制。

說明:您的內容大小不明確,因為您的 scrollView 不知道其內容(白色視圖)的寬度和高度。

我在白色視圖中添加了頂部、寬度和高度約束。 這樣你的 scrollView 知道它的內容寬度並且只會垂直滾動。 至於內容高度 - 您可以在代碼中更改 heightContstrait 的常量,或者如果您對白色視圖的子視圖正確使用自動布局,則可以完全刪除高度約束。

將藍色視圖放在滾動視圖下。 並設置滾動視圖內容插入,使您的白色視圖不顯示在頂部,但有一些空間。 現在開始時,您會看到略高於藍色的白色視圖,滾動時它會覆蓋藍色視圖。 關於大小錯誤,scrollview 最初需要知道它的內容大小。 我假設您的白色視圖是表格視圖,因此將其底部約束設置為零。 如果您希望藍色大小在滾動時更改其大小,例如頭像或其他東西,則有點不同。 您應該在 uiscrolldelegate 上進行滾動事件,並相應地更改藍色視圖的高度

確保您已閱讀(並理解)Apple TN2154:“UIScrollView And Autolayout”,其中解釋了所需的步驟。

看起來您沒有正確指定內容大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM