0

更新

如果我点击并拖动我的 UICollectionViewCell,然后释放,就会调用 didSelectItem。但是,如果我只是轻按,它就无法识别轻按!这是为什么?

我有一个 UIViewController 和三个容器视图(通过 Storyboard 嵌入)。当我按下按钮时,会出现其中一个视图。每个容器视图都由一个UIViewController包含一个UICollectionView. 我UICollectionView使用IGListKit控制它。每个单元格都由称为节控制器的东西管理 - 一段代码处理节中每个单元格的委托和数据源方法,例如cellForItem......didSelectItem但是,当我选择一个单元格时,didSelectItem永远不会被调用。我已经检查了一些明显的事情,例如确保数据源已连接并确保集合视图/单元格启用了 userInteraction。奇怪的是,相同的设置适用于我的应用程序的另一部分(使用相同的部分控制器),除了集合视图没有嵌入到容器视图中。有人知道会发生什么吗?

一些代码:

将我的容器视图分配给一个变量:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "ViewersOfLivestreamViewController" {
        if let viewController = segue.destination as? LivestreamInvitationParentViewController {
            viewersOfLivestreamViewController = viewController
            viewersOfLivestreamViewController.delegate = self
        }
    }
}

在我的容器视图中初始化适配器以处理UICollectionView

adapter = ListAdapter(updater: ListAdapterUpdater(), viewController: self, workingRangeSize: 10)
adapter.collectionView = collectionView
adapter.dataSource = self
adapter.scrollViewDelegate = self

设置单元格使用的部分控制器:

func listAdapter(_ listAdapter: ListAdapter, sectionControllerFor object: Any) -> ListSectionController {
    let sectionController = FriendsSectionController()
    sectionController.sectionModel = model
    sectionController.delegate = self
    return sectionController
}

在我的部分控制器中,应该调用此函数,但从不调用:

override func didSelectItem(at index: Int) {
    // This never gets called
}
4

0 回答 0