我已将 UICollectionVIew
添加到 vertical Stack View
。我从 storyboard
连接了 datasource
和 Delegate
,并从代码中添加了 delegate/datasource
。
但是,下面的方法根本没有被调用:
internal func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { ... }
但是,方法
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 2
}
正在被调用。
因此,我将 UICollectionVIew
移出了 vertical Stack View
,然后它就可以正常工作了。但是,当 UICollectionVIew
位于 vertical Stack View
中时,不会调用该方法。
我该如何解决这个问题?
最佳答案
我过去使用 TableView
时也发生过同样的情况,但使用 UIStackView
时却没有发生这种情况
如果调用了 numberOfSections
和 numberOfItemsInSection
而未调用 cellForItemAt
那么唯一可能的原因是你的 CollectionView
高度为 0
因为你的单元格没有足够的空间来显示单元格
您可以通过将 Collection View 的高度添加到 0 来检查同样的事情 在你说的情况下,我将 UICollectionVIew 移出垂直堆栈 View ,然后它就可以工作了。
关于ios - 在 UIStackview 中添加时未在 UICollectionView 中触发方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945427/