2017-04-04 42 views
0

我試圖在tableview中實現3D touch,該tableview包含一個可重複使用的單元,其中的collectionview。問題在於,我無法真正把注意力集中在單元格中正確的收集視圖單元格上。下面是我的代碼:3D Touch UICollectionView insideUITableviewCell

func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { 

    guard let indexPath = tableView.indexPathForRow(at: location) else { return nil } 
    guard let cell = tableView.cellForRow(at: indexPath) as? DiscoveryComponent else { return nil } 
    let collectionView = cell.collectionView 
    print("---- CollectionView \(collectionView)----") 
    let collectionPoint = collectionView.convert(location, from: tableView) 
    guard let collectionIndexPath = collectionView.indexPathForItem(at: collectionPoint) else { return nil } 
    guard let collectionViewCell = collectionView.cellForItem(at: collectionIndexPath) as? DiscoveryProductCell else { return nil } 
    print(collectionIndexPath) 
    print("Collection Cell \(collectionViewCell.productImageView.frame)") 

    previewingContext.sourceRect = collectionViewCell.productImageView.frame 

    return UIViewController() 
} 

問題是,當我嘗試對tableview第二排則tableview以前行的集合視圖的第一個單元的重點是應用3D觸控。我認爲我的做法是錯誤的。

當然最後我還沒有返回適當的控制器,因爲這仍然處於測試階段。

回答

0

registerForPreviewing(with:self,sourceView:self.collectionView)

相關問題