2014-09-06 165 views
2

我很難找到構建此設計的最佳方法。我應該如何構建這個視圖?

頂視圖有一個最低高度,當它達到此高度時變得粘稠。底部視圖託管一個包含三個視圖的尋呼控制器。這些視圖中的每一個都擁有垂直滾動的集合視圖或表視圖。

我對如何解決這個問題非常茫然。整個視圖是否可滾動,我應該防止在第二個視圖上滾動,直到頂視圖達到粘滯高度?或者,這些視圖中的每一個都將可視化視圖分開,而且頁面控制器只是一個單元格?我是否應該使用分頁控制器,還是應該使用scrollview並啓用分頁? (後者有點粗糙的互動方式)

謝謝!

enter image description here

+0

因此,它是粘性高度,你有麻煩? – 68cherries 2014-09-06 19:36:15

+0

@ 68cherries這是一個很重要的部分...也試圖瞭解如何以及何時可以垂直滾動頁面控制器。 – 2014-09-06 19:38:19

+0

「傳呼控制器」是否水平或垂直移動頁面? – 2014-09-11 01:28:26

回答

5

看看WWDC今年的Advanced User Interfaces using Collection View。此視圖與iTunes Connect應用界面非常非常相似。整個會話視頻解釋了他們如何創建該界面。

我使用類似的方法來創建Emojicate應用程序中的鍵盤。

enter image description here

我想我會做的其實是假粘頭。所以像這樣...

  1. 只使用一個集合視圖。
  2. 創建一個包含三個數據源的「分段數據源」。 (請參閱WWDC的視頻)
  3. 分段控件更改後,通過更改其佈局和(如果需要)更新集合視圖dataSource
  4. 使整個頂部部分成爲集合視圖的標題。
  5. 當收藏視圖滾動經過某個點(當您想粘住標題時),然後有一個視圖,它是壓縮的標題,並使其在屏幕頂部可見。這完全不附加到收集視圖。

當分段控件更改時,您可以通過更改「選定數據源」來更新集合視圖。數據源還可以包含一個將更新它的UICollectionViewLayout

從本質上講,你所談論的tableview中僅是一個集合圖,其中單元格的寬度等於屏幕寬度。即假表格視圖。

粘性標題根本不粘。就在它開始脫離屏幕時,你可以在那裏放置一個假頭。

這將需要重複(ISH)視圖以及如何組織數據的一些想法,但我認爲這將是不必多收集意見和頁面控制器之類的東西更容易,更耗資源。

如果你要我去通過它進行更詳細,讓我知道,但它是一個複雜的課題。首先觀看視頻。

2

navigation bar

我將使這部分的導航條。應該比較容易。只需要用barButtonItem自定義後退按鈕,然後在titleView中做幾個標籤。

我會使下一部分成爲表格視圖。

enter image description here

的的tableView有2個部分。第一部分沒有部分標題,第二部分沒有任何單元格,只是部分標題。

第一,在本節只電池:

enter image description here

,其餘的將是第二部分標題的觀點:

enter image description here

這給了你,你要因爲粘性節標題將保留在那裏,即使您滾動過去,並且由於集合只有2個部分,控件始終保持最高。

我認爲收集/表格分頁部分是最難的部分,我不清楚它是如何完成的。但我認爲它可能是一個ContainerView。容器視圖的每個視圖都是一個tableview或一個collectionview。你將不得不添加一些代碼來處理容器視圖相對於第二節頭的移動(可能是一個將容器視圖附加到上面實現的第一個tableview的按鈕上的自動佈局約束)。

我不認爲你的表/集合在滾動視圖將是一個很好的實現。我想我甚至在文檔中看過開發者應該遠離它(但我可能會錯誤地記住它)。

1

我會:

  • A 「標頭視圖」 有三個子視圖:

    • 固定高度的頂部和底部的意見(他們在任何規模的保持可見)。

    • 時出現的中間視圖/消失作爲上海華生長/收縮。

  • 滾動視圖(表或集合視圖是子類)上部分地覆蓋與設置足以露出下面的標題視圖(相同的方式拉刷新視圖的頂部邊界頭部視圖,揭示)。

    • 可以將分頁按鈕設置爲表/集合視圖節標題視圖。

enter image description here

最後跟蹤滾動視圖的滾動位置手動保持調整頁眉視圖高度。


查看此解決方案的另一種方法。

  • 兩個完全分開的部分,一個標題視圖和一個表視圖。

    1. 一個簡單的標題視圖(藍色),用於調整其子視圖的高度更改。更精確地說,當它收縮時隱藏它的中間子視圖(淺藍色)。
    2. a)部分覆蓋「接口」構建器中的頁眉視圖但 b)的頂視圖,以避免隱藏實際設備中的頁眉視圖(tableView.contentInset = UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f);)。
  • 這兩個部分只是在表格視圖向上/向下滾動時通過調整標題視圖高度來「連接」。

+0

這聽起來像一個很棒的想法。雖然我有這樣一段艱難的時間,但是......我能看到一個例子嗎?即使不是示例項目,也許是更詳細的教程? – SAHM 2014-11-22 01:01:58

+0

爲建議的解決方案添加了第二個說明。 – Rivera 2014-11-25 02:49:46