【问题标题】:Embedded collectionView inside collectionViewCell not pinning to safe area layoutcollectionViewCell 内的嵌入式 collectionView 未固定到安全区域布局
【发布时间】:2021-12-27 19:39:50
【问题描述】:

我正在尝试重新创建 instagram 个人资料屏幕,但我遇到了无法将嵌入式 collectionView 固定到安全区域布局的问题。

这是一个关于问题所在的视频:

https://streamable.com/gitpo0

嵌入式 collectionView 中有 32 个单元格,当滚动到底部时,您看不到最后 5 个单元格(除非按照视频强制向上滚动)。

这是一个示例项目:

https://github.com/mickey1980/TestProject

我认为应该是把嵌入的collectionView固定到super.view.safeAreaLayoutGuide.bottomAnchor的情况下,但这似乎不起作用。

在模拟器中运行调试应用程序时我注意到的是,colletoinView 中添加了额外的约束:

比屏幕还大。

如果我在单元格内的 collectionView 中添加一个恒定的高度,它会按预期工作,但这并不是我想要的。

我很感激我的知识存在差距,希望有人能指出我正确的方向。

我曾尝试效仿 Apples,Modern Collection 的视图设计,所以这是使用可区分的数据源和组合布局构建的,这对我来说是非常新的。

任何帮助将不胜感激。

更新

考虑到这一点,我认为嵌入式collectionView没有考虑到外部collectionView的header。因此,尽管由于嵌入的 collectionView 不知道的补充标题而离开屏幕,但高度计算正确。不过,我还是有点不确定如何解决这个问题?

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    如果我正确理解了您的问题,请从 DemoViewController 中的存储库更改此行:

    self.collectionView.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor).isActive = true
    

    self.collectionView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
    

    这应该可以解决问题 - 您正在固定到安全区域,而不仅仅是应该解决您的问题的视图底部锚点。

    【讨论】:

    • 感谢您的回复,您对此进行了测试吗?嵌入式集合视图中的滚动现在是否正常工作?它不适合我。
    • 除了上面的更改之外,您似乎还需要在 PostScreenCell 中禁用滚动。我不确定您所追求的确切滚动行为,但这将修复底部间距。
    • 谢谢,当您滚动时,您会看到所有单元格吗?有 32 个单元格,目前有 5 个单元格被切断。
    猜你喜欢
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多