UICollectionView didSelecteItem 委托行为异常

UICollectionView didSelecteItem Delegate behaving weirdly

我有一个 UICollectionView 来显示一些组件。 它是垂直滚动的,只有 1 列。

我正在向 collectionView 的数据源的不同部分添加 2 个相同但具有不同数据的对象。

而在我的cell class中,我的初始化和更新方法如下

- (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 有时被调用有时不被调用,这很奇怪。

我还将 collectionView 的委托设置为当前 class,并且我也没有向单元格或 collectionView.

添加任何 gesture recogniser

但行为仍然很奇怪而且非常随机,我什至无法调试特定场景。

如有任何帮助,我们将不胜感激。

谢谢

实际问题与 UIImageViewUICollectionViewCell 无关。

之前我使用 [self.collectionView reloadSections:[INDEX]] 重新加载 collectionView 的部分,这造成了一些问题,我不知道为什么。

但是,我将它们更改为 [self.collectionView reloadData],问题就解决了。

出现问题的原因非常奇怪,我搜索了也没有解释。

无论如何,我的问题已得到解决,因此如果将来对任何人有帮助,我会将我的解决方案作为答案发布。

谢谢