如果子视图正在滚动,则禁用滚动的超级视图

时间:2014-12-13 00:04:02

标签: ios uiscrollview uikit uigesturerecognizer

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
}

上面的代码有效,虽然像地狱一样难看。我有一个深埋在视图层次结构中的scrollView,我需要一种更好的方法来在选择器滚动时禁用集合视图滚动。

我尝试使用exclusiveTouch属性,没有帮助。还有比这更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为这是继承集合视图并覆盖

的最佳方法
func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 

等相关方法。在那里,您可以控制您的触摸流程并解决您的问题。