2017-01-17 46 views
1

我爲我的tvOS應用程序製作了一些Netflix佈局,其中包含幾個名爲featuredCollectionViewstandardCollectionView的集合視圖。如何使用swift獲取UIcollectionview單元格中關注單元格的「父級」-tvOS

我有一個變量,其中包含當前聚焦的單元格。我唯一想要的是獲取選定單元格的當前集合視圖。任何人都可以幫助我嗎?

代碼

func pressedThePlayPauseButton() { 

    if let focusedCell = UIScreen.main.focusedView as? UICollectionViewCell{ 

     let collectionViewOfFocusedCell = ... 
+0

我希望這個鏈接https://github.com/VikasPrajapati27/CollectionViewFocus會幫助你。 –

回答

1

你總是可以走了視圖層次:

var parentCollectionView = self.superview 
    while parentCollectionView is UICollectionView != true { 
     parentCollectionView = parentCollectionView?.superview 
    } 

如果你需要經過多個可以更改UICollectionView上面你正在尋找的子類收集意見。更簡單的方法是隻給你的單元格對cellViewItemAtIndexPath中的collectionView的弱引用;這也適用於您的視圖控制器,而不是您的collectionView,這可能是您真正想要參考的。由於collectionView保留了單元格,所以它必須很弱。否則你創建一個循環。

class CustomCollectionViewCell: UICollectionViewCell { 
     weak var customCollectionViewController: CustomCollectionViewController? 

    } 

    class CustomCollectionViewController: UICollectionViewController { 
     override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
      let cell = collectionView.dequeueReusableCell(withReuseIdentifier: String(describing: CustomCollectionViewCell.self), for: indexPath) as! CustomCollectionViewCell 
      cell.customCollectionViewController = self 
      return cell 
     } 
    } 
+0

我明白你在做什麼,但我沒有使用UICollectionViewConroller,只是使用了幾個UICollectionViews。這對我的情況如何工作? –

+0

只要類型正確並且您將弱引用設置爲正確的collectionView,弱參考適用於任何參考類型。 –

相關問題