2016-03-02 3 views
0

У меня есть tableView, и внутри этого tableView есть 3 изображения.Выбор изображения внутри TableViewCell

Я хотел был бы иметь возможность выбрать изображение и быть направлено к другому VC где он показывает изображение, которое было постукивано.

Для моих изображений (загруженные из Parse) У меня есть UUID (уникальный идентификатор), раньше, когда я использовал CollectionView я поставил его так:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
     postuuid.append(uuidArray[indexPath.row]) 

     let post = self.storyboard?.instantiateViewControllerWithIdentifier("collectionImage") as! CollectionImageViewController 
     self.navigationController?.pushViewController(post, animated: true) 
    } 

И что у меня, что я пытаюсь достичь сейчас ...

я понял, что я не могу использовать Tableview SelectedRow ..... как бы выбрать всю строку, очевидно, поэтому я настроить изображение UITapGestureRecognized так:

let imageTap = UITapGestureRecognizer(target: self, action: "imageTap") 
      imageTap.numberOfTapsRequired = 1 
      imageView.userInteractionEnabled = true 
      imageView.addGestureRecognizer(imageTap) 

А потом FUNC(), чтобы перенаправить его на новый VC:

func imageTap() { 

     postuuid.append// My issues here, I'm not sure how to set it up or reference it to the cellForRow, like I did it in the collectionViewSelected item code above. 

     let post = self.storyboard?.instantiateViewControllerWithIdentifier("collectionImage") as! CollectionImageViewController 
     self.navigationController?.pushViewController(post, animated: true) 
    } 

Как вы видите из моего кода, я не знаю, или не могу понять это в тот момент, как подключить его к уникальному идентификатору ...

Я UUID установлен как вар = uuidArray = строка, которая загружает их правильно ...

CellForRow ...:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    { 
     var counter = (indexPath.row * 3) 

     let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! ProfileTableViewCell 




     for imageView in cell.threeImages { 
      imageView.image = UIImage(named: "ImagePlaceHolder") 

      if counter < imageArray.count { 
      imageView.hidden = false 
      let finalImage = imageArray[counter++]["image"] 
      finalImage!.getDataInBackgroundWithBlock { 
       (imageData: NSData?, error: NSError?) -> Void in 
       if error == nil { 
        if let imageData = imageData { 
         imageView.image = UIImage(data:imageData) 

        }}}} else { 
       imageView.hidden = true 
      } 



      let imageTap = UITapGestureRecognizer(target: self, action: "imageTap") 
      imageTap.numberOfTapsRequired = 1 
      imageView.userInteractionEnabled = true 
      imageView.addGestureRecognizer(imageTap) 


return cell 
     } 

Если любой может помочь мне с этот вопрос, я очень благодарю вас за это!

С уважением.

+0

вы можете показать свой cellfor rowatindexpath, легко решить –

+0

вас также может использовать UIButton, который также полезен, и вы также получаете его событие. –

+0

@ Anbu.Karthik Я его обновил –

ответ

0

Вы можете добавить indexPath.row как тег для tapGesture распознаватель:

... 
let imageTap = UITapGestureRecognizer(target: self, action: "imageTap:") 
imageView.tag = indexPath.row 
... 

и настройки вашей функции, как

func imageTap(sender:AnyObject) { 

    postuuid.append(uuidArray[sender.view.tag]) 

    let post = self.storyboard?.instantiateViewControllerWithIdentifier("collectionImage") as! CollectionImageViewController 
    self.navigationController?.pushViewController(post, animated: true) 
} 
+0

Это не позволяет мне добавить тег ..? –

+0

извините, мой плохой, вы не можете добавить тег к жесту, но вы можете добавить тег к imageView и получить к нему доступ позже, как sender.view.tag –

+0

Я обновил свой ответ, поэтому, пожалуйста, –

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