0

enter image description here如何滾動UICollectionView下的另一個UICollectionView?

因此,繼承人我的問題,你在gif上看到的4個橙色矩形是單個垂直UICollectionView = orangeCollectionView。

綠色和紫色「卡」視圖是另一個UICollectionView = overlayCollectionView的一部分。

overlayCollectionView有3個單元格,其中一個只是一個空白的UICollectionViewCell,另外兩個是卡片。

當overlayCollectionView顯示空白的UICollectionViewCell時,我希望能夠滾動orangeCollectionView。

override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { 
    guard let superr = superview else { return true} 
    for view in superr.subviews { 
     if view.isKind(of: OrangeCollectionView.self) { 
      view.point(inside: point, with: event) 
      return false 
     } 
    } 
    return true 
} 

這使我可以滾動orangeCollectionView然而,這實際上並沒有解決我的問題。我需要能夠左右滾動顯示卡片,但是這會阻止所有接觸,因爲始終落在OrangeCollectionView上。

我該如何檢查他們是否左右滾動顯示卡片?否則,如果它們位於空白單元格上,請上下滾動orangeViewController。

+0

那麼如果計數爲0 overlayCollectionView(如你所提到的空白)隱藏這一觀點,並得到參考以橙色。而當沒有得到重疊的參考。 –

+0

@TusharSharma overlayCollectionView的計數將始終爲3.單元格順序爲CardCell,Blank Cell,CardCell。 overlayCollectionView最初側重於空白單元格,用戶可以向左/向右滾動查看其他單元格。 –

+0

即使它是空白的,但它仍然存在。您希望與孩子可見的父視圖進行交談。我不這麼認爲,如果可能的話,這是可能的,甚至是一件好事。 –

回答

0

有這個問題,以及...沒有找到一個不錯的方式來做到這一點,但這個工程。 首先,您需要訪問滾動視圖委託方法scrollViewDidScroll()。你可以撥打電話:

if scrollView == overlayScrollView { 

    if scrollView.contentOffset.x == self.view.frame.width { // don't know which coordinate you need 

     self.overlayScrollView.alpa = 0 
    } 

} 

之後,在橙色集合視圖上添加一個空白視圖。該視圖的alpha值爲0(我認爲,也許顏色剛剛清晰;如果它有效,請嘗試一下)。

在代碼中,您隨後將UISwipeGestureRecognizer添加到您剛剛創建的視圖,並檢測是否有向左或向右的滑動。

通過檢測輕掃的方向,您可以overlayScrollView的contentOffset.x軸簡單地更改爲0或self.view.frame.width * 2

對不起,我不能提供我的工作示例代碼,我從我的手機回答。這不是正確的解決方案,但是當我做了一個食品應用的一個大客戶就非常完美,沒有人會抱怨:)

相關問題