获取 imageView 在 UICollectionView 单元格上的位置

Get position of imageView on cell of a UICollectionView

我有一个带有自定义单元格的 UICollectionView,它有一些标签和一个图像,我需要获取图像所在的位置以便在其上放置一个遮罩,我尝试使用以下代码但每个遮罩都得到应用于第一个单元格的顶部。 这是我使用的代码:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];

    UIView *darken = [[UIView alloc]init];
    darken.frame = cell.img.frame;

    darken.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.4];
    [collectionView insertSubview:darken aboveSubview:cell.img];

    return cell;
}

如何获取单元格上每个图像的框架位置?

更改您的代码以仅创建一个视图。

@define IMAGE_TAG 9999

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];

    if (![cell viewWithTag:IMAGE_TAG])
    {
          UIView *darken = [[UIView alloc]init];
          darken.frame = cell.img.frame;
          [darken setTag:IMAGE_TAG];
          darken.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.4];
          [cell insertSubview:darken aboveSubview:cell.img];
    }



    return cell;
}