首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在滚动视图中滚动集合视图,也可以滚动滚动视图

在滚动视图中滚动集合视图,也可以滚动滚动视图
EN

Stack Overflow用户
提问于 2022-03-18 21:41:14
回答 1查看 364关注 0票数 0

我在制作天气应用。我可以使用已启用分页的集合视图在不同位置之间交换。在每个页面中都有另一个集合视图,其中显示不同时间的天气。当我在子滚动视图上拖动和释放时,它的移动就像它有动能一样,当它停止滚动时,主滚动视图开始滚动,就像它从子滚动视图获取剩余的能量一样。我不希望它是某种连接,所以它需要更像在苹果的天气应用程序。

问题视频

也很感谢你对我的设计有任何建议。

编辑:实际上,在滚动视图中有集合视图,而不是两个集合视图的集合视图

EN

回答 1

Stack Overflow用户

发布于 2022-03-19 05:25:18

我能想到的一种方法是检测与之交互的内容,然后在此基础上防止滚动功能。

这样做的一种方法是对主集合视图进行override hitTest

以下是您可以尝试的:

1.创建自定义UICollectionView子类

代码语言:javascript
运行
复制
class CustomCollectionView: UICollectionView
{
    override func hitTest(_ point: CGPoint,
                          with event: UIEvent?) -> UIView? {
        
        // Get the view you are interacting with
        let view = super.hitTest(point, with: event)
        
        // Allow interaction if we are interacting with the main
        // collection view itself
        if view is CustomCollectionView {
            return view
        }
        
        // Return nil to prevent interaction since we are
        // interacting with something besides the main collection view
        return nil
    }
}

2.然后仅使用此自定义类创建主/父UICollectionView

代码语言:javascript
运行
复制
private var containerCollectionView: CustomCollectionView!

所以希望这能

  1. 当直接与父集合视图(而不是通过其子视图)交互时,限制滚动交互。
  2. 保存子集合中的滚动。

试试看这是否有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71533458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档