如果子视图正在滚动,则禁用超级视图滚动
Posted
技术标签:
【中文标题】如果子视图正在滚动,则禁用超级视图滚动【英文标题】:Disable superview from scrolling if subview is scrolling 【发布时间】:2014-12-13 00:04:01 【问题描述】: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
属性,但没有帮助。还有比这更好的方法吗?
【问题讨论】:
这与this answer有关吗? @wmorrison365 我不这么认为,因为我的问题是对该 OP 的回答。此外,寻找的解决方案可能是使用我发布的相同想法的更好的设计模式。 【参考方案1】:我认为子类化你的集合视图和覆盖的最好方法
func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
和其他相关方法。在那里您可以控制您的触摸流程并解决您的问题。
【讨论】:
以上是关于如果子视图正在滚动,则禁用超级视图滚动的主要内容,如果未能解决你的问题,请参考以下文章