You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UICollectionView向上滚动时底部安全区出现灰色条遮挡UIView问题求助

解决方案

第一步:删除冲突的布局代码

你当前同时使用了 UICollectionViewCompositionalLayout 和 UICollectionViewDelegateFlowLayout 两套布局系统,会引发不可预期的布局异常:

  • 去掉类声明中的 UICollectionViewDelegateFlowLayout 协议
  • 删除整个无效的 sizeForItemAt 代理方法

第二步:修正滚动指示器内边距

你描述的滚动时出现、滚动结束自动消失的灰色条,本质是 UICollectionView 的垂直滚动指示器。你当前将 scrollIndicatorInsets 设为 zero,导致指示器底部和 collectionView 底部对齐,会叠加显示在底部自定义 tabView 上,修改对应配置:

// viewDidLayoutSubviews 中修改滚动指示器内边距,bottom值和你section的bottom inset保持一致为80即可
myCollectionView.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 80, right: 0)

如果不需要显示滚动指示器,可直接关闭:

myCollectionView.showsVerticalScrollIndicator = false

第三步:校验视图约束

确认你的 myCollectionView 的底部约束是绑定到 tabView 的顶部,而非父视图的底部,从根源避免 collectionView 显示区域和底部自定义 tab 重叠的问题。

额外优化建议

你在 viewWillAppear 中同时使用 bringSubviewToFront 和 zPosition 两种方式控制层级,二者选其一即可,避免层级逻辑混乱。

内容的提问来源于stack exchange,提问作者EarlyEdCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:45:11