0

私はUICollectionViewにいくつかのコンポーネントを表示しています。 垂直スクロールと1列のみです。UICollectionView didSelecteItem奇妙な動作をする代理人

私は2つの同じオブジェクトを追加していますが、異なるデータを異なるセクションのcollectionViewのデータソースに追加しています。

そして

- (void)commonInitializer { 

    self.backgroundColor = kVTColorWhite; 

    self.imageView = [[VTUIKit imageSquareXL2] addToSuperview:self]; 
    self.imageView.f_x = kVTPadding; 
    self.imageView.backgroundColor = kVTColorBackground; 
    self.imageView.f_width = [VTAdSpaceDisplayCell cellSize].width - 2*kVTPadding; 
    self.imageView.f_height = [VTUIKit screenWidth]/3.125; 
    self.imageView.layer.cornerRadius = 2.0; 
    self.imageView.layer.masksToBounds = YES; 
} 


- (void)updateWithModel:(id)model{ 

    self.model = model; 

    if (self.model.image == nil) { 
     [self updateEmptyCells]; 
    } 
    else{ 
     [self.imageView setImageWithUrl:self.model.image optimizedForSize:[self class] cellSize] withPlaceholder:[UIImage imageNamed:@"Placeholder-Image"]]; 
    } 
} 

しかしcollectionViewのこのセルのdidSelectItemAtIndexPathが呼ばれることも、時にはありません、その非常に奇妙されているに従うように私cellクラスで私の初期化と更新の方法があります。

collectionViewさんの現在のクラスへの代理人を設定しましたが、gesture recogniserをセルに追加したり、collectionViewも追加していません。

しかし、まだ動作が異常で非常にランダムなので、デバッグするための特定のシナリオを取得することもできません。

ご協力いただければ幸いです。

おかげ

+1

あなたの問題はさまざまな場所にある可能性があります。コレクションビューでより多くのコードを表示できますか?いつ、どのようにデータをリロードするか、それらのアイテムをどのように初期化するかなどです。 –

+0

あなたのimageViewにこれを加えても違いはありません:self.imageView.userInteractionEnabled = true; –

+0

実際問題は変だし、この問題が発生する理由を見つけることができません。答えとしてここに投稿します。ありがとう –

答えて

0

は、実際の問題はUIImageViewまたはUICollectionViewCellどこにも関連しています。

私はcollectionViewのセクションをリロードするために[self.collectionView reloadSections:[INDEX]]を使用していましたが、それはいくつかの問題を引き起こしていました。理由はわかりません。

しかし、私はそれらを[self.collectionView reloadData]に変更し、問題はなくなりました。

私はそれを探していたにもかかわらず、問題が出現するのに非常に奇妙で奇妙な理由があり、私は説明がありません。

とにかく、問題が解決したので、今後誰かを助けるなら、私の答えを回答として投稿しています。

ありがとうございました