如何检查 UICollectionView 有图像
Posted
技术标签:
【中文标题】如何检查 UICollectionView 有图像【英文标题】:How to check UICollectionView has image 【发布时间】:2019-03-10 04:52:08 【问题描述】:我有 4 个 UICollectionViewCell,我想让前 2 个单元格在其中强制包含图像。示例代码如下。下面是一个用例:
如果我单击每个单元格将打开相机,则有 4 个 UICollectionViewCell,我们可以拍照或从图库中选择图像。如何知道前 2 个单元格必须有图像。寻找条件来检查这个逻辑。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
Image *image = (Image *)self.defect.imageSet[indexPath.item];
ADRPhotoCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([ADRPhotoCollectionViewCell class]) forIndexPath:indexPath];
cell.image = image.thumbnailImage ? image.thumbnailImage : nil;
cell.photoType = [self.defect defectPhotoTypeForIndex:indexPath];
return cell;
#pragma mark - UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
Image *image = self.defect.imageSet[indexPath.item];
if (self.selectedImage != image)
[self updateAnnotatedImage];
self.selectedImage = image;
[self.jotController clearAll];
[self updateUserInterface];
if (image.thumbnailImage)
[self transitionImage:YES];
else
self.imageView.image = nil;
[self showCameraPicker];
else if (!image.thumbnailImage)
//clicked the + to add a new image
[self showCameraPicker];
【问题讨论】:
你能解释一下“如何知道前 2 个单元格必须有图像”吗?你的意思是,你想检查前 2 个单元格是否已经有图像? 是的,我想检查 cellForItemAtIndexPath 0 和 1 是否有图像。 【参考方案1】:您可以通过这种方式检查UIImageView
中是否有图片:
-(BOOL) checkImages
for (int i=0, i<2 , i++)
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:0];
ADRPhotoCollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
if (cell.imageView.image == nil || CGSizeEqualToSize(cell.imageView.image.size, CGSizeZero))
//there isn't any image or the image is empty
return NO;
return YES;
【讨论】:
还是没有。我想检查 cellForItemAtIndexPath 0 和 1 是否有图像。 这在委托方法之外不会有collectionView对象 你可以为你的collectionView设置出口,并在你课堂上的任何地方访问它 现在它总是返回 1。 即使 imageView 有图像?以上是关于如何检查 UICollectionView 有图像的主要内容,如果未能解决你的问题,请参考以下文章
在 UICollectionView 中显示图像 - 如何实现图像之间的固定垂直间距?
检查 indexPath 处的单元格是不是在屏幕 UICollectionView 上可见
如何在 UICollectionview 中显示前 9 张图像?
如何使用 Alamofire Swift 4 将图像填充到 UICollectionView