我在使用 UICollectionView 时遇到了这个奇怪的问题。我通过 xib 文件创建了一个包含 UICollectionView 的自定义 View Controller 。然后我将自定义 View Controller 添加到主视图并在添加后为 Collection View 填充数据。 但是每次显示 View 时, Collection View 都会闪烁,然后显示空白,没有项目?!真的很奇怪,我以前从来没有见过?!您可以在下面的视频中看到它: https://youtu.be/Pwn8cufpQ1Y
这是我添加自定义 View 的方法:
let list = HorizontalListViewController(nibName: "HorizontalListViewController", bundle: nil)
list.view.translatesAutoresizingMaskIntoConstraints = false
self.contentView.addSubview(list.view)
let constraintTop = NSLayoutConstraint(item: list.view, attribute: .Top, relatedBy: .Equal, toItem: self.contentView, attribute: .Top, multiplier: 1, constant: self.contentViewHeight.constant)
let constraintLead = NSLayoutConstraint(item: list.view, attribute: .Leading, relatedBy: .Equal, toItem: self.contentView, attribute: .Leading, multiplier: 1, constant: 0)
let constraintTrail = NSLayoutConstraint(item: list.view, attribute: .Trailing, relatedBy: .Equal, toItem: self.contentView, attribute: .Trailing, multiplier: 1, constant: 0)
let constraintHeight = NSLayoutConstraint(item: list.view, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: CGFloat(LIST_VIEW_HEIGHT))
list.view.addConstraint(constraintHeight)
self.contentView.addConstraints([constraintTop, constraintLead, constraintTrail])
list.setList(datas, title: title)
在 viewDidLoad 中注册单元格:
// Do any additional setup after loading the view.
self.collectionView.dataSource = self
self.collectionView.delegate = self
self.collectionView.registerNib(UINib(nibName:"HorizontalListCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: CELL_IDENTIFIER)
你以前见过这个问题吗?我该如何解决?
编辑 1:
我尝试了 Santosh 给出的解决方案,但结果仍然相同,但现在单元格在消失前出现的时间更长了。这是视频:https://youtu.be/8H4KqY6JJNs
编辑 2:
我尝试使用 Storyboard创建自定义 View Controller ,但单元格仍然不断消失
编辑 3:
如您所见,隐藏属性设置为 YES。我仔细检查了每一行代码,确定我没有设置单元格的隐藏属性。所以我认为在某个时候,某个地方, Collection View 会自动将其单元格设置为隐藏
最佳答案
我真傻,我忘了添加 addChildViewController 和 didMoveToParentViewController 方法。添加 subview 后添加这些方法,一切都会好起来的。
关于ios - 收藏 View 在闪烁后不显示任何项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37975777/