[英]UICollectionView delegate not being called
我具有自定義UICollectionViewController
, UICollectionViewFlowLayout
和UICollectionViewCell
類。 在我的布局中,我堆疊了類似於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.