2014-12-13 109 views
0
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    // initialize cell 

    if let pickerCell = cell as? SettingsPickerCell { 
     collectionView.panGestureRecognizer.requireGestureRecognizerToFail(pickerCell.picker.collectionViewController.collectionView!.panGestureRecognizer) 
    } 

    return cell 
} 

上面的代碼工作正常,儘管它和地獄一樣醜陋。我有一個深度視圖層次結構的滾動視圖,我需要一個更好的方式來禁用滾動選擇器時滾動的集合視圖。如果子視圖正在滾動,則禁止滾動查看超級視圖

我試過使用exclusiveTouch屬性,沒有幫助。有沒有比這更好的方法?

+0

這與[此答案](http://stackoverflow.com/a/26512396/758831)? – wmorrison365 2014-12-13 00:45:51

+0

@ wmorrison365我不這麼認爲,因爲我的問題是對OP的回答。此外,尋找解決方案可能是一個更好的設計模式,使用我發佈的相同想法。 – Mazyod 2014-12-13 06:13:36

回答

1

我認爲最好的方式來繼承你的集合視圖,並覆蓋

func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 

和其他相關方法。在那裏你可以控制你的觸摸流程並解決你的問題。

相關問題