获取 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;
}
我有一个带有自定义单元格的 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;
}