簡體   English   中英

XCode:在IB中布置滾動內容

[英]XCode: laying out scrolling content in IB

TL; DR:在Interface Builder中布局超大滾動視圖內容的最佳方法是什么?

我正在嘗試找出在Interface Builder中布置屏幕外/滾動內容的最簡單的方法。 我當前的方法是調整滾動視圖內容的寬度和高度限制,以在返回到構建的適當約束之前查看IB中的所有內容,但這很麻煩。 就是說,為了總體簡化編輯,我寧願在圖形上做更多的事情,而在編程上做更少的事情。

我能想到的一般方法是:

  1. 使用嵌入的序列以尺寸精確的方式建立視圖(最直觀,最簡單的方法)
  2. 調整約束以進行編輯,重置以進行構建
  3. 在IB中使用占位符值/約束(尚未嘗試過)
  4. 以編程方式布局超大內容

更詳細地講,我試圖構建一個包含子視圖的垂直滾動視圖。 每個子視圖都是獨立的,並且可能會出現在多個上下文中,我想將它們隔離(實際上,我也將它們嵌入,但這並不影響問題)。 我想做的是使用IB來布置一個高的復合內容視圖。 然后,我想再次使用容器視圖的單個內容視圖創建外部滾動視圖,並嵌入復合內容視圖。 就是 左側的灰色內容視圖在右側嵌入了較高的紅色/藍色內容,我想知道是否可以推斷出高度,所以它可能與設備無關(這些視圖是正方形的,因此它們將從設備中獲取其寬度) )

在此處輸入圖片說明

綜上所述,無論如何,我是否可以從嵌入式視圖內容的實際高度中得出托管scrollview的contentView高度,還是應該改為使用方法2、3或其他方法?

需要明確的是,“自動布局”要求滾動視圖內容視圖定義邊緣和寬度/高度尺寸的約束。 就我而言,我希望能夠將寬度預設為設備的寬度,但高度應從紅色/藍色內容視圖派生。 IB不允許我在Storyboard中的嵌入和嵌入場景之間拖動約束,當我遺漏字段時,它將使用原型值作為內容高度。

是否建議在IB中使用占位符大小(3)使內容可見以進行編輯,同時又要知道運行時約束會正確呈現該內容(即Storyboard中的滾動視圖過大,因此所有滾動內容都可見)? 相反,即使嘗試也是愚蠢的-我是否應該以編程方式完成所有滾動視圖內容的合成(4)?

提前致謝。

編輯:

盡管選中了僅在設計時約束上的占位符復選框,但占位符約束使您得以通過,但迫使您更改運行時約束的優先級,並觸發IB /布局錯誤和沖突約束警告。

UITableviewController與靜態單元格一起使用。 單元格將成為您的內容視圖。

您可以在IB中向下滾動tableview以查看底部的單元格,並且會得到一些不錯的額外行為,例如在打開鍵盤時將視圖滾動到正確的位置,這樣就不會隱藏您單擊的文本字段。

而且您完全不必擔心滾動視圖。

如果要重用內容視圖,則可以使表動態化,並通過代碼提供內容視圖。

暫無
暫無

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

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