У меня есть 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];
}
}
Да, я хочу проверить, что у cellForItemAtIndexPath 0 и 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 есть изображение?
Да в обоих случаях.
Давайте продолжить обсуждение в чате.
Можете ли вы объяснить «Как узнать, что первые 2 ячейки должны иметь изображение»? Вы имеете в виду, что хотите проверить, есть ли у первых 2 ячеек изображение или нет?