2

Я использовал 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]; 

      } 

ответ

0
  1. Первая проблема в вашем коде, вы используете «клетку» объект в didFinishPickingMediaWithInfo, где ад вы определили, что?

  2. Как вы укажете, в каком виде изображения коллекции Collection вы покажете изображение, выбранное из библиотеки?

JUST использовать тег для отслеживания вещей, и в конце концов собирания изображения просто загрузите ячейку из определенного тега с помощью indexpath.item и перезагрузить эту конкретную ячейку.

 Смежные вопросы

  • Нет связанных вопросов^_^