2013-11-26 51 views
2

我已經實現與自動佈局滾動視圖麻煩:/如何使用滾動型和ContainerView與自動佈局檢查

下面是簡單的「Hello World」項目這一問題:http://www.sendspace.com/file/cg96by

但問題...我需要創建滾動視圖,但我也需要使用自動佈局。所以我創建了純單視圖應用程序,添加了(如我在一些教程中看到的)Scrollview(與主視圖相同的大小),添加約束(全零),然後添加Container View(與滾動視圖相同的大小) ..它沒有工作:/它不滾動。下面是這種情況的畫面: enter image description here

現在,當我刪除名爲兩個約束:中心X和Y對齊方式(標註在屏幕上),它完美的作品,但Xcode5並不很喜歡它:/和在下面的屏幕上顯示一些錯誤。

他爲什麼要寬度和高度0?!

實際上ContainerView無關緊要。我也嘗試了圖像視圖。當您選擇「添加缺少的約束」時,它也會添加中心X和Y對齊。並且滾動不起作用。當你刪除它們,滾動的作品,但你有這樣的交戰:

enter image description here

+0

你打算在scrollview中有一個容器嗎?我想這裏的容器是完全不必要的,我不確定你是否理解如何使用它或需要它在這種情況下,你想完成什麼? – JAManfredi

+0

我想要滾動視圖並使用自動佈局 編輯。我正在關注這篇文章:http://codehappily.wordpress.com/2013/09/26/ios-how-to-use-uiscrollview-with-auto-layout-pure-auto-layout/ – Marshall

+0

好吧,爲什麼不只是把scrollview放在視圖裏面,而不是使用容器?然後使用自動佈局的高度和寬度? – JAManfredi

回答

3

好吧,我發現手動添加自動佈局約束是相當混亂,使用底部的「添加新的約束條件」按鈕,其實就是在方便,試試這個,當你得到每個視圖你想要它使用這種方式爲每個視圖添加布局約束(即scrollView,containerView,UIImageView)我做到了這一點,並舉例說明,選擇每個約束,因爲我有頂部,左側,底部和右側邊緣設置,這應該做你想要的。

您可能會想要清除所有當前的約束,然後以這種方式實現它們。

繼承人像你想http://cl.ly/image/463k2043401L

和佈局繼承人例如添加的約束:http://cl.ly/image/472l2V0l3N1L

爲了保持動態的,所以你可以旋轉它,你會想要做以上所有觀點,但容器視圖...然後如果您控制從容器拖動到沒有約束的滾動視圖,您可以添加它所建議的所有它們,除了底部的高度和寬度,它滿足任何缺少的約束,並應該做到這一點。將容器居中放置在滾動視圖中,並將其固定到頂部,底部,左側和右側,並且它應該隨着滾動而動態變化查看內容大小。

http://cl.ly/image/1o3k1e452W0g

很抱歉的混亂,希望這有助於!

+0

所以,你建議用寬度和高度來替換Center X和Y Alignment ...但是寬度是固定的。而當用戶將iPhone左旋寬度仍然是320px ..我不確定那 – Marshall

+0

好吧,我明白了!您必須添加約束條件: 頂部,底部,左側,右側和高度(必須固定)但沒有寬度(因爲旋轉後您的視圖不會調整大小)。然後添加中心X(僅)對齊。這對我來說非常合適。謝謝:) – Marshall

+0

我實際上是要編輯我的答案,你可以排除固定容器的高度和寬度。 – JAManfredi

0

我有一個類似的問題,我發現在Interface Builder中使用純粹的Autolayout沒有任何代碼的相對簡單的解決方案。

對於概念驗證,首先刪除視圖控制器中的任何約束,如果看到這個作品。

這是樣品佈局:

  • 視圖(我的UIViewController主視圖)

    • 滾動視圖(UIScrollView中)

      • 容器視圖(UIView的)

        • 內容視圖(例如的UIImageView)

A.滾動查看寬度/高度應越小容器視圖寬度/高度

B.容器視圖應該有一些determinated寬度/高度(可是明確的寬度/高度)

C.做控制拖動容器視圖滾動查看並僅添加:

  1. 前導空格集裝箱
  2. 尾隨空間集裝箱

D.檢查出這兩個約束和對「恆定」值設置爲0

E.運行的應用程序和