ios - 在 UIStackview 中添加时未在 UICollectionView 中触发方法

标签 ios swift swift3 uicollectionview uistackview

我已将 UICollectionVIew 添加到 vertical Stack View。我从 storyboard 连接了 datasourceDelegate,并从代码中添加了 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 时却没有发生这种情况

如果调用了 numberOfSectionsnumberOfItemsInSection 而未调用 cellForItemAt 那么唯一可能的原因是你的 CollectionView 高度为 0

因为你的单元格没有足够的空间来显示单元格

您可以通过将 Collection View 的高度添加到 0 来检查同样的事情 在你说的情况下,我将 UICollectionVIew 移出垂直堆栈 View ,然后它就可以工作了。

关于ios - 在 UIStackview 中添加时未在 UICollectionView 中触发方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945427/

相关文章:

ios - 如何在我的 LaunchStoryboard 中显示 CFBundleShortVersionString?

objective-c - 属性不能标记为@NSManaged,因为它的类型不能在 Objective-C 中表示

swift - 如何使用 Swift 将图像值传递给 ImageSlideshow

iOS:导航顶栏和 UIviewController 的其他内容之间的线

ios - UIImage 显示为不透明正方形(IOS Swift)

ios - 使用 Swift 将信息从 ViewController 传递到 ViewController

ios - 是否应该在生产 iOS 应用程序中保留断言?

swift - 将 SKNodes 添加到 SKScene 减慢动画

node.js - 如何在 Swift 中发布一个数组? (获取字节到我的服务器)

ios - 从代码更改应用程序语言在 iOS 中不起作用