2013-03-04 73 views
9

集合視圖由單行,水平排列的單元格組成,其大小與集合視圖的邊界大小相同,單個單元格填充整個屏幕。處理觸摸的UICollectionView內的UITableView。

問題是收集視圖似乎攔截所有的鍋。我如何將它們轉發到桌面,以便我也可以垂直滾動桌面。

我想垂直平移傳遞到單元格內的表,所以它可以上下滾動。我希望水平鍋被傳送到收集視圖,所以它可以水平滾動。

任何想法?謝謝。用故事板

+0

使用storyBoard,嘗試將tableView作爲自身的子視圖放在collectionViewCell.collectionView中。查看 – 2013-03-04 01:07:30

+0

集合視圖已經是視圖的子視圖。表視圖被插入到集合視圖的原型單元中,因此在運行時它的in,cell.contentView。水龍頭傳遞到表格,我可以看到裏面的單元格被選中。 – foFox 2013-03-04 01:10:26

+0

是的,將tableView拖入單元格square(cell.contenView)。顯示一些代碼。 – 2013-03-04 01:11:28

回答

14

對於裏面的CollectionView的UITableView,請按照下列步驟操作:

-Drag的CollectionView到的UIViewController,拖動的數據源的UIViewController(不拖代表)。在ViewController.m中添加數據源方法

- 創建單元格:CollectionViewCell類。在storyBoard中爲Cell選擇Cell類,指定重用ID。

-Drag tableView裏面collectionCell廣場。代表,數據源也拖到CollecionCell Square。添加tableView數據源,委託Cell.m內部

- 創建CellDelegate時實現tableViewDidSelect裏面。這個轉移委託的UIViewController執行其他操作

示例代碼:https://github.com/lequysang/github_zip/blob/master/TableViewInCollection.zip

+0

所以是的工作,我忘了提及,我使用自定義佈局,這是UICollectionViewFlowLayout的子類。這似乎是所有問題的根源。 – foFox 2013-03-04 03:55:40

+1

忘記加入:非常感謝。 – foFox 2013-03-04 04:02:16

+0

嗨在代碼中,如果我增加集合視圖中單元格的數量。在收集視圖的第三個單元格中顯示第一個表格視圖,而不是第三個。如何解決它? – souvickcse 2014-10-29 13:21:59

2

Swift2更新 - 我們不需要做所有上述步驟。只需將控制器作爲tableview和collection視圖的委託和數據源就行了。

0

我已經能夠在不使用故事板的情況下完成這項工作 - 儘管我爲我的視圖使用了XIB,但僅添加了Autolayout規則。所有自定義(顏色,字體,標籤等)均在代碼中設置。在任何情況下,這也適用於以編程方式構建的單元。

如何做到這一點:

  • 要記住的是,以您的自定義視圖添加到細胞不是電池本身內的contentView財產最重要的事情。如果您將XIB用於自定義UICollectionViewCell,請將其留空。實例化您的自定義視圖(其中UITableView是),然後將其添加爲UICollectionViewCellcontentView的子視圖。如果直接在收集視圖單元格內添加表格vie,表格視圖將不會垂直滾動

  • 落實UICollectionViewDelegateshouldSelectItemAtIndexPathshouldHighlightItemAtIndexPath,使都返回false,使攻上收集觀察室不用於內部表格視圖水龍頭攔截。

用Xcode 7.3完成iOS 9+。

+0

你能分享你的演示嗎? – Jason 2017-01-26 05:44:58