簡體   English   中英

UICollectionView委托未被調用

[英]UICollectionView delegate not being called

我具有自定義UICollectionViewControllerUICollectionViewFlowLayoutUICollectionViewCell類。 在我的布局中,我堆疊了類似於http://skeuo.com/uicollectionview-custom-layout-tutorial的每個部分。

目前,當我運行該應用程序時,所有數據都可以正確顯示。

我試圖在我的控制器中實現didSelectItemAtIndexPath ,以基於被輕擊的項啟動序列。 但是,委托方法永遠不會被調用。 在我的自定義單元類中,我添加了一個確實被調用的touchesEnded方法,但是我無法弄清楚為什么視圖控制器類中的委托沒有觸發。

在我的UICollectionViewController類下,我指定了協議<UICollectionViewDelegate, UICollectionViewDataSource> viewDidLoad我還指定了:

self.collectionView.delegate = self;
self.collectionView.dataSource = self;

作為附帶說明,但我認為這是一個相關的問題-在Storyboard中,我有我的原型單元。 它的類類型設置為我的自定義類,並且我已經設置了ReuseIdentifier 在我的視圖控制器中,加載我的自定義單元格類並使用相同的ReuseIdentifier 但是,StoryBoard和Cell類之間沒有連接。 我可以對情節提要板原型單元進行更改,並且這些更改不會反映在運行時發生的情況中。 相反,我必須注釋掉這一行:

[self.collectionView registerClass:[NSideCollectionViewCell class] forCellWithReuseIdentifier:NSIDE_CELL_IDENTIFIER];

強制它使用我的情節提要單元版本。 但是當我這樣做時,我的單元類中的initWithFrame自定義初始化代碼永遠不會被調用。 我不確定為什么會這樣,因為Storyboard清楚地顯示了我的原型單元具有正確的類類型。

回答了我自己的問題-在情節提要中創建的項目調用initWithCoder而不是initWithFrame。 注釋掉顯式的自定義單元格類注冊,使視圖控制器可以遵循在情節提要中設置的內容,並且一切均按預期進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM