2017-05-07 157 views
0

我正在努力優化我的應用程序的風景和小屏幕。我主要使用滾動視圖來實現這一點。在我的一個觀點中,我有一個容器視圖。當我在故事板中的設備之間切換時,此容器視圖看起來很完美。容器視圖被映射到一個視圖控制器,該視圖控制器的滾動視圖的頂部,底部,前導和尾部空間設置爲超級視圖0.因此,它應該填充容器。實際的視圖控制器設置爲Freeform Simulated Size,寬度爲263,高度爲190(滾動視圖內部的確切大小)。iOS滾動視圖允許滾動過去的內容

滾動視圖的內部我只有標籤顯示信息。

這一切似乎工作正常。在較小的設備或橫向上,您可以滾動查看內容並查看所有標籤。

唯一的問題是您可以滾動瀏覽內容的所有設備和屏幕尺寸。在X軸和Y軸上。奇怪的是,在水平軸上,容器視圖的寬度被專門設置爲263.我使用滾動視圖的唯一原因是高度。寬度沒有問題,即使在較小的屏幕上也是如此。但它仍然允許用戶水平滾動。

對於橫向上的iPhone 4s的更具體的例子,容器視圖是263寬度和90高度。但它自身的內容是263寬度和190高度。所以我希望用戶能夠向下滾動查看剩餘的100個內容。但是目前它允許用戶橫向滾動,並且在向下滾動時滾動滾動內容的結尾。

我該如何解決這個問題,讓用戶無法滾動瀏覽內容?

如果您需要任何其他詳細信息或信息,請讓我知道。解釋故事板細節有時可能有點棘手,所以我很樂意提供任何額外的細節以使其更加清晰。

回答

1

很像回答您的其他問題,關鍵是要明白,滾動視圖內容決定了滾動區域。

假設您將「TopLabel」約束設置爲Leading:0和Top:0。標籤將位於內容的左上角,並將定義滾動視圖的內容框架的左上角。

現在把「BottomLabel」下方的右側,並設置約束追蹤:0和底部:0

此時,自動佈局不知道放在哪裏頂部和左側部分「BottomLabel」,因爲可滾動區域沒有完全定義。因此,如果您將約束添加到Leading:60和Top:400的「BottomLabel」,「BottomLabel」的左上角將放置在60,400處,並且可滾動區域 - 滾動視圖的contentSize - 將爲60 + width of BottomLabel X 400 + height of BottomLabel

爲了避免滾動過去,你想看到的最後一個視圖/圖像/標籤,您需要確保元素的約束控制滾動視圖內容的寬度和高度。