2016-03-14 57 views
1

我正在用Swift構建我的應用程序,並且我想在同一個ViewController中設置TableViewCollectionView與Swift相同的ViewController中的TableView和CollectionView

It should look like this (image here)

我創辦了唯一的答案就是設置我CollectionViewTableViewTableViewCell

我做到了,但它分開滾動。

我找到的解決方案是禁用CollectionView滾動,然後配置CollectionView的高度約束,通過對單元格的高度求和編程。它並不完美,因爲單元格變得不可重用(250+)。

我很絕望,因爲我在許多其他應用程序中看到過這種設置,我認爲答案非常簡單,但我無法在任何地方找到它。

任何人都可以幫我嗎?萬分感謝!

回答

4

另一種選擇是將其設置爲具有兩個部分的單個集合視圖,一個看起來並放置爲tableview,另一個具有更多集合視圖外觀。

或者將其設置爲與兩個部分,其中一個顯示每行2並排的側面圖像(這是產生這種佈局的老學校方式。)

很多方法單個表視圖去了解它,這取決於你要玩什麼,你想了解:)

+0

在一個CollectionView中的兩個部分對我來說聽起來很合理..你能給我一個鏈接到正確的教程這種設置嗎?具體如何在一個CollectionView中實現兩個部分?謝謝! –

+0

實際的實現將以'UICollectionViewDataSource'方法'numberOfSectionsInCollectionView'爲中心,並創建一個自定義的'UICollectionViewLayout',以不同的方式處理每個節。雖然我沒有意識到任何特定於該問題的教程。 –

+0

另一種可能性是將表視圖創建爲集合視圖的標題,並確保將標題大小更新爲tableview的大小。 –

0

設置一個空白的ViewController。然後將兩個ContainmentViewController放置在ViewController中。根據你想要的tableview的多少屏幕以及你想成爲collectionview的大小來調整它們的大小。然後使用嵌入從每個containmentViewController創建segview到tableviewcontroller和collectionviewcontroller。這將允許同時在屏幕上和分開滾動。

如果你不需要使用TableViewController,只需要一個tableview,你也可以在你的tableview下放置一個containmentviewcontroller,併爲你的collectionviewcontroller創建embed segue。

+0

不幸的是,我不希望他們分開滾動,這是我的問題 –

+0

我ALS有同樣的問題,我有收集在頂部和下面,他們是一個tableview我想同時滾動兩個swift –

1

你可以把一個UITableViewUICollectionView一個UIViewController內,並實現UITableViewDelegateUITableViewDataSourceUICollectionViewDataSource什麼。

鍵:

  1. 使用AutoLayout確保的tableView只有兩行,並 的CollectionView採取區域的其餘部分。

  2. 確保tableView。scrollEnabled =假

這裏有一個例子,https://www.dropbox.com/s/v6yc40udfk8mqx5/FlexTableCellHeight.zip?dl=0

+0

關鍵是TableView可以有兩個以上的行,取決於服務器的響應 –

+0

在這種情況下,你必須手動控制tableView的高度。例如添加tableView約束的出口,並根據tableView的行更新約束。 http://stackoverflow.com/questions/22542626/ios-change-constraint-programmatically – dichen

相關問題