簡體   English   中英

UI滾動視圖未按預期滾動

[英]UI Scroll View doesn't scroll as intended

使用情節提要和自動布局,我將滾動視圖拖動到視圖控制器中,並適當地滿足自動布局約束。 我添加了一個標簽,該標簽以適當的自動布局約束在屏幕上居中。

在viewDidLoad,viewWillAppear和viewDidLayoutSubviews中實現了以下代碼(當然在不同的運行時間)

scrollView.contentSize.height = 1000

在模擬器中運行時,視圖僅水平滾動而不垂直滾動。 一開始看到它在沒有應用特定條件的情況下水平滾動時,這是沒有意義的,直到我仔細查看了約束。

最初在UIScrollView中拖動並選擇Pin選項以添加約束時,它會顯示前導和尾隨空格的默認值為-20而不是0。這似乎在解釋自動水平滾動,但仍不能解釋為什么我不能夠實現垂直滾動。

我也嘗試過使用CGSize指定內容大小:

scrollView.contentSize = CGSize(400, 1000)

要么

scrollView.contentSize = CGSize(view.frame.width, 1000)

似乎都不起作用。 我還使用初始化程序CGSizeMake(width,height)用相同的參數實現了上述方法,並且也不起作用。

選擇滾動視圖時,默認情況下會檢查滾動是否已啟用以及其他選項。

您可以將約束設置為在容器視圖中水平居中和垂直居中。 這具有引發錯誤“滾動視圖的內容大小不明確”的不幸效果。 如果您知道要在代碼中設置內容大小,則可以忽略它。

但是,最好拖出一個空的UIView稱為containerView,將其頂部/底部/左側/右側固定到滾動視圖的中心,使其像上面的標簽一樣,是一種更好的做法。 設置containerView的高度的約束。 然后為containerView的高度約束創建一個IBOutlet,將其稱為containerViewHeightConstraint。 然后在代碼中說:

self.containerViewHeightConstraint.constant = 1000 //or whatever height you want for scrolling 

暫無
暫無

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

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