【发布时间】:2020-08-11 17:50:11
【问题描述】:
我有当前的结构:(-> 表示子视图)
UIScrollView
- pageOne:UIView
- pageTwo:UIView -> 集合:UICollectionView
(pageOne 和 pageTwo 是 UIScrollView 的子视图。pageTwo 包含一个 CollectionView)
如果在集合中检测到滚动(拖动),我正在尝试取消父 UIScrollView 的滚动。我通过为 pageTwo 构建一个 UIPanGestureRecognizer 来做到这一点。当检测到拖动时,我设置:
UIScrollView.isScrollingEnabled = false
collection.isScrollingEnabled = true
当 UIPanGestureRecognizer.State.ended(拖入 pageTwo 停止)时,我退后了
UIScrollView.isScrollingEnabled = true
collection.isScrollingEnabled = false
我已经验证该函数正确识别拖动/结束拖动,但由于某种原因,虽然在 pageTwo 内拖动被正确检测到,但 UIScrollView 继续滚动。更具体地说,在拖入 pageTwo 并成功将 UIScrollView 滚动更改为 false 并将集合滚动更改为 true 后,初始点击会导致 UIScrollView 滚动(从技术上讲,页面,因为 isPagingEnabled 对于 ScrollView 为 true),返回到 pageOne 的顶部。
- collection & UIScrollView 委托等于 viewController 类。
- DelayTouchDown 适用于 UIScrollView。
- collection 和 scrollView 都垂直滚动
有什么建议吗?
(对不起,如果我对这个问题的格式不正确,第一次发布)
【问题讨论】:
标签: ios swift uicollectionview uiscrollview uipangesturerecognizer