我有现在的结构。(-> 表示子视图)
UIScrollView
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,并将collection滚动改为true时,最初的点击导致UIScrollView滚动(技术上说是页面,因为ScrollView的isPagingEnabled为true),回到pageOne的顶部。
有什么建议吗?
(如果我这个问题的格式不对,抱歉,第一次发帖)
已解决
我具体遇到的问题是关于
UIScrollView.isPagingEnabled = true
当将isPagingEnabled设置为false,并使collection.isScrollingEnabled时。始终 设置为true(而不是像上面所说的那样切换到false),用户界面就会像预期的那样工作。