簡體   English   中英

帶有標簽欄和導航欄的滾動視圖自動布局

[英]Scrollview Autolayout with Tabbar and Navigationbar

我需要在包含導航欄和標簽欄的視圖控制器中的 uiview(contentView) 中設置約束。我在滾動視圖中放置了一個 uiview(contentView),它與滾動視圖的高度相同。這些是我目前設置的東西,

  1. 為 scrollview(top,bottom,left,right) 設置 4 個約束,約束未選中邊距,所有邊緣均為 0。
  2. 在 scrollview(top,bottom,left,right) 內為 uiview(contentView) 設置 4 個約束,約束未選中邊距,所有邊緣均為 0。
  3. 為滾動視圖和 UIView(contentView) 設置等寬和等高

輸出顯示像這樣 uiview(contentView) 被放置在較低約 64 像素(大約)。這個視圖不應該像這樣放置。任何人都可以幫我解決這個問題。

這是我工作過的項目演示, 可以在這里下載

選擇場景並在屬性檢查器中取消選中:“Under Top Bars”和“Under Bottom Bars”。

在此處輸入圖片說明

然后在情節提要中使滾動視圖從 View Controller 的最頂部開始,導航欄開始的地方,然后是 UIView,導航欄結束的地方。

稍后,選擇 Scroll View 並設置默認情況下的約束。

在此處輸入圖片說明

我想這不是最干凈的方法,但我遇到了同樣的問題並且為我工作。

您可以嘗試self.automaticallyAdjustsScrollViewInsets = false

標簽欄必須在滾動視圖下的樹中設置,如下所示:

控制器樹

嘗試這個

override func viewDidLoad() {
    self.edgesForExtendedLayout = UIRectEdge()
    self.extendedLayoutIncludesOpaqueBars = false

}

我找到了解決方案,將父 ViewController 類設置為頂欄下方並禁用它並相應地更改了父級中的框架並將相同的屬性和框架設置為子視圖控制器修復了該問題。

暫無
暫無

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

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