2017-02-20 67 views
0

我覺得非常密集的問這個,但我已經嘗試了幾種解決方案,並沒有能夠拿出我想要的結果。我有2個UIViews是一個更大的UIView的子視圖,它是scrollView的子視圖。這兩個視圖分別是登錄屏幕&,用戶可以在它們之間滑動以正確訪問應用程序。但由於某些原因,scrollview將不會在這兩個視圖之間水平滾動。我正在看的示例使用的不是代碼來實現這一點,我已經完全模仿了約束。這可能聽起來很愚蠢,但是有沒有人對我如何實現這個橫向滾動有任何建議?水平滾動與uiscrollview完全通過故事板和自動佈局

回答

2

我有2個UIViews這是一個更大的UIView是滾動型的子視圖的子視圖」

OK,讓我們說有Sub1的和分公司2,一個ContainerView內(稱之爲CV),其在ScrollView(SV)中。

在界面生成器:

  • SUB1與分公司2各自爲300寬
  • CV應該是600的寬度,以保持SUB1與分公司2側由端
  • SV寬度應爲300 - 你只會看到Sub1

爲了滾動視圖滾動,它的內容寬度必須大於它自己的寬度。如果您將CV上的Leading和Trailing約束設置爲相對於SV,那將定義內容寬度。

這聽起來像你的「ContainerView」約束集到了滾動

希望它的確定在這裏有這些圖片...反正...

SV - 滾動型 - 是藍色

CV - 容器視圖 - 是粉紅色的

Sub1的和分公司2是黃色

開始了滾動型,300×300和中心的兩個方向:

​​

添加一個UIView - 這將是CV - 進入SV,以8,8爲240×128(我們默認大小會立即改變),並添加前導和的每個8頂部約束:

enter image description here

更改CV到600×120的寬度和高度,並設置寬度和高度的限制。該圖的一半,現在延伸到右側,超出了SV的邊緣:

enter image description here

添加兩個子視圖的CV - 用於演示,我使用UILabels。將它們的寬度x高度設置爲50 x 30,並將Sub1設置爲8,8。

enter image description here

給Sub1的左,上(8,8)和寬度和高度(50x30)的約束。這將保持「釘」在左上角的簡歷:

enter image description here

給分公司2寬度和高度(50x30)的約束,以及8,8下和右/後的約束。當你設置這些限制,點擊「更新幀」按鈕,將分公司2標籤自動移動到的地方 - 「釘」到CV(鑑於IB不再)的右下角:

enter image description here

現在,真正的關鍵部分:給CV右/尾隨和各8底部的約束。這是自動佈局用於確定SV的ContentSize的內容。如果您運行該應用程序,您現在應該能夠從Sub1水平滾動到Sub2。

enter image description here

假設了所有的工作,你可以玩弄調整CV的寬度和高度的限制,看看它是如何影響滾動。

源代碼在這裏:https://github.com/DonMag/ScrollViewConstraints

希望幫助:)

+0

是的,我認爲這是問題。但是我對你在這裏使用的語言感到困惑。當你說「相對於SV」時,你是否建議將SV和CV疊加在一起,然後設置它們的前沿和後沿? – Onicha21

+0

是啊,有點混亂...我會掀起視覺輔助... – DonMag

+0

OK,或者如果你有類似的信息網站,我會很樂意去探索和 – Onicha21