私は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
も追加していません。
しかし、まだ動作が異常で非常にランダムなので、デバッグするための特定のシナリオを取得することもできません。
ご協力いただければ幸いです。
おかげ
あなたの問題はさまざまな場所にある可能性があります。コレクションビューでより多くのコードを表示できますか?いつ、どのようにデータをリロードするか、それらのアイテムをどのように初期化するかなどです。 –
あなたのimageViewにこれを加えても違いはありません:self.imageView.userInteractionEnabled = true; –
実際問題は変だし、この問題が発生する理由を見つけることができません。答えとしてここに投稿します。ありがとう –