[英]UITableView inside UICollectionView handling touches.
集合視圖由一行水平對齊的單元格組成,其大小與集合視圖的邊界大小相同,單個單元格填充整個屏幕。
問題是集合視圖似乎攔截了所有的平底鍋。 如何將它們轉發到表格中,這樣我也可以垂直滾動表格。
我希望將垂直平移傳送到單元格內的表格,以便它可以向上和向下滾動。 我希望將水平平移傳送到集合視圖,因此它可以水平滾動。
有任何想法嗎? 謝謝。
對於使用storyBoard的CollectionView內的UITableView,請按照以下步驟操作:
-Drag CollectionView到UIViewController,將數據源拖到UIViewController(不要拖動委托)。 在ViewController.m中添加數據源方法
-Create Cell:CollectionViewCell類。 在storyBoard到Cell類中選擇Cell類,指定重用ID。
-Drag tableView里面的collectionCell square。 委托,數據源也拖到CollecionCell Square。 添加tableView數據源,在Cell.m中委托
在其中實現tableViewDidSelect時創建CellDelegate。 將此委托轉移到UIViewController以執行其他操作
示例代碼: https : //github.com/lequysang/github_zip/blob/master/TableViewInCollection.zip
Swift2更新 - 我們不需要執行上述所有步驟。 只需使控制器成為tableview和collection視圖的委托和數據源就可以了。
我已經能夠在不使用故事板的情況下完成這項工作 - 盡管我使用XIB作為我的觀點,但只是添加了Autolayout規則。 所有自定義(顏色,字體,標簽等)都在代碼中設置。 在任何情況下,這也適用於以編程方式構建的單元格。
怎么做:
要記住的最重要的事情是將自定義視圖添加到單元格的contentView
屬性而不是單元格本身 。 如果您將XIB用於自定義UICollectionViewCell
,請將其留空。 實例化您的自定義視圖( UITableView
所在的位置),然后將其添加為UICollectionViewCell
的contentView
的子視圖。 如果直接在集合視圖單元格中添加表格, 則表格視圖不會垂直滾動 。
實施shouldSelectItemAtIndexPath
和shouldHighlightItemAtIndexPath
的的UICollectionViewDelegate
並都返回false
,讓攻上收集觀察室不用於內部表格視圖水龍頭攔截。
適用於iOS 9+的Xcode 7.3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.