更新
如果我点击并拖动我的 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
}