ios - UIViewController 内的 UICollectionView 不允许滚动
问题描述
Edit1:我没有使用情节提要,所有内容都已以编程方式添加
Edit2:更新的代码片段
你好,我有以下关于 UICollectionView 的问题
- 无论您做什么,CollectionView 都不允许您滚动。
- 有时单元格甚至会完全消失,留下一个白色背景的 CollectionView。
当您尝试向上滚动以查看不可见的单元格时,会出现此问题。
- 我创建了一个具有不同类型单元格的 CollectionView。
- CollectionView 嵌套在 ImageView 下方的 ViewController 中。
- 添加了约束,它们工作得很好。
我如何使它可滚动?
代表问题的 GIF
ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.navigationItem.title = "Featured"
self.view.backgroundColor = UIColor.white
// Add UImage carousel
let carousel: UIImageView = {
let imageView = UIImageView()
let image = UIImage()
imageView.backgroundColor = UIColor.purple
return imageView
}()
self.view.addSubview(carousel)
carousel.translatesAutoresizingMaskIntoConstraints = false
// Add CollectionView
let featuredControllerLayout = UICollectionViewFlowLayout()
// Add CollectionViewController
featuredControllerLayout.scrollDirection = .vertical
let featuredController = FeaturedCollectionViewController(collectionViewLayout: featuredControllerLayout)
guard let featuredView = featuredController.collectionView else { return }
self.view.addSubview(featuredView)
featuredView.translatesAutoresizingMaskIntoConstraints = false
// Setup Constraints
if #available(iOS 11.0, *) {
let guide = self.view.safeAreaLayoutGuide
let guideSize = guide.layoutFrame.size
carousel.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true
carousel.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true
carousel.topAnchor.constraint(equalTo: guide.topAnchor).isActive = true
carousel.frame.size.height = guideSize.width/2
carousel.heightAnchor.constraint(equalToConstant: carousel.frame.size.height).isActive = true
featuredView.trailingAnchor.constraint(equalTo: guide.trailingAnchor).isActive = true
featuredView.leadingAnchor.constraint(equalTo: guide.leadingAnchor).isActive = true
featuredView.topAnchor.constraint(equalTo: carousel.bottomAnchor).isActive = true
featuredView.bottomAnchor.constraint(equalTo: guide.bottomAnchor).isActive = true
}
}
解决方案
嘿,您要说的是您无法向上滚动并查看整个集合视图项目?
如果是这种情况,那么您没有考虑标签栏控制器的高度,因此您可以启用半透明例如我有一个 git repo 我让您可以检查并让我知道您是否卡在任何地方
推荐阅读
- python - 如何从给定的计数、平均值、标准差、最小值、最大值等生成数据集?
- c++ - 在编译时禁止在其他函数内调用函数
- python - pandas 和 numpy 对处理非数字数据有什么好处吗?
- c# - 以实时秒数改变变量
- flutter - 如何使图像centerInParent颤动
- vhdl - 带有选择错误的 VHDL 预期“(”,或标识符或一元运算符
- python - 如何在 selenium python 中无限等待元素可点击?
- java - 如何在 Spring 数据流服务器中将包含 10 个 Spring 批处理作业的应用程序拆分为 10 个任务?
- python - 如何检查字典中的值是否完全相同?
- python - UTF-8 错误编码,找出错误编码的方式