2015-07-31 2 views
1

Я пытаюсь реализовать подобную функцию в своем приложении, используя синтаксический анализ. Если пользователь нажал кнопку голосования. Ярлык также увеличивает количество одинаковых чисел на стороне анализа. Однако с моим кодом пользователь может многократно нажать, чтобы увеличить подобное. Я бы хотел, чтобы он обнаружил, что пользователь нажал и отключил подобную кнопку. Для этого я создал класс в разделе «Понравилось». Я сделал имя пользователя, imageId и строковый столбец, и подобныйStatus в качестве логического. Однако я не могу сделать так, что если пользователю понравится какое-либо изображение, он добавит к нему новый элемент с userId, ImageId и likeStatus. Это коллекция Просмотреть кодПроанализируйте, если пользователь уже нажал кнопку

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

     let cell = collectionView.dequeueReusableCellWithReuseIdentifier("newview", forIndexPath: indexPath) as! NewCollectionViewCell 
     let item = self.votes[indexPath.row] 
     // Display the country name 

     if let value = item["imageText"] as? String { 
      cell.postsLabel.text = value 
     } 

     // Display "initial" flag image 
     var initialThumbnail = UIImage(named: "question") 
     cell.postsImageView.image = initialThumbnail 

     cell.complition = { 
      self.likeButton(indexPath) 
     } 

     if let votesValue = item["votes"] as? Int 
     { 
      cell.votesLabel?.text = "\(votesValue)" 
     } 

     // Fetch final flag image - if it exists 
     if let value = item["imageFile"] as? PFFile { 

      cell.postsImageView.file = value 
      cell.postsImageView.loadInBackground({ (image: UIImage?, error: NSError?) -> Void in 
       if error != nil { 
        cell.postsImageView.image = image 
       } 
      }) 
     } 
     return cell 
    } 


    /* 
    ========================================================================================== 
    Segue methods 
    ========================================================================================== 
    */ 

    func likeButton(indexPath:NSIndexPath) 
    { 
     let cell = self.collectionView.cellForItemAtIndexPath(indexPath) as! NewCollectionViewCell 

     let object = self.votes[indexPath.row] 

     if let likes = object["votes"] as? Int 
     { 
      object["votes"] = likes + 1 
      object.saveInBackgroundWithBlock{ (success:Bool,error:NSError?) -> Void in 
       println("Data saved") 

      } 
      cell.votesLabel?.text = "\(likes + 1)" 
        } 
     else 
     { 
      object["votes"] = 1 
      object.saveInBackgroundWithBlock{ (success:Bool,error:NSError?) -> Void in 
       println("Data saved") 
      } 
      cell.votesLabel?.text = "1" 
     } 

    } 

и это код ячейки

@IBAction func vote(sender: AnyObject) { 

    if self.complition != nil 
    { 
     self.complition!() 
    } 
} 
} 

Любые советы или Как я могу это сделать в коде? Спасибо.

ответ

0

То, как я это делал, было с помощью класса в Parse, который я назвал «UserLikeActivity» или что-то в этом роде, и в нем был указатель столбца на пользователя, который по нраву, указатель на actitivy (в моем случае это был пост), тип (указывающий, был ли это верхним, нижним, нижним и последующим и т. д.) и указателем на пользователя, который создал понравившуюся деятельность.

Теперь, когда я запрашивал Parse, чтобы установить мои таблицы, я не только запросил класс, содержащий все сообщения, но и запросил этот класс, который я затем сохранил и использовал для определения состояния кнопки. Поэтому для каждой ячейки, если активность уже понравилась, я отключил кнопку. Надеюсь, это поможет вам разобраться в правильном направлении, так как вы задали этот вопрос примерно 7 раз.

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