Я использовал UICollectionView
для отображения изображений. Когда я нажимаю кнопку вставки изображения, фотографии в локальной библиотеке должны быть добавлены к UICollectionCell
с использованием UIImagePicker
. Я объявил UIImageView
в пользовательской ячейке, которая является RACollectionViewCell
. В didFinishPickingMediaWithInfo
делегат метод UIImagePickerView
всякий раз, когда я пишу как cell.imageview.image = chosenImage
. Я получаю ошибку как необъявленный идентификатор «cell». Сообщите мне, как решить мою проблему.Как добавить изображение в ячейку просмотра коллекции из локальной библиотеки в ios?
Любая помощь заметна, спасибо заранее!
Вот мой код:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellID = @"cellID";
RACollectionViewCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];
[cell.imageView removeFromSuperview];
cell.imageView.frame = cell.bounds;
cell.imageView.image = [UIImage imageNamed:[_photosArray objectAtIndex:indexPath.item]];
cell.backgroundColor = [UIColor lightGrayColor];
[cell.contentView addSubview:cell.imageView];
UIButton *addBtn =[[UIButton alloc]init];
addBtn.tag=indexPath.row;
deleteBtn.frame = CGRectMake(100, 100, 19, 19);
UIImage *img=[UIImage imageNamed:@"ic_add_photo.png"];
[addBtn setImage:img forState:UIControlStateNormal];
[addBtn addTarget:self action:@selector(addBtnAction) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:addBtn];
return cell;
}
-(void)addBtnAction
{
UIAlertController *actionsheetController = [[UIAlertController alloc]init];
UIAlertAction *library = [UIAlertAction actionWithTitle:@"Choose from Library" style:UIAlertActionStyleDefault handler:^(UIAlertAction
* action)
{
// Library button tapped
[self performSelector:@selector(libraryBtnAction) withObject:nil];
}];
[actionsheetController addAction:library];
actionsheetController.view.tintColor = [UIColor darkGrayColor];
[self presentViewController:actionsheetController animated:YES completion:nil];
}
-(void)libraryBtnAction
{
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
chosenImage = info[UIImagePickerControllerEditedImage];
cell.imageView.image = chosenImage;
[_collectionView reloadData];
[picker dismissViewControllerAnimated:YES completion:NULL];
}