Доступ к ячейкам collectionView видимым / невидимым - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть функция для переворачивания ячеек представления коллекции, которая работает нормально. Моя проблема в том, что я хочу перевернуть все ячейки, а не только эту видимую ячейку, поэтому, когда я проведу пальцем до следующей ячейки, она будет перевернута.

Это то, что я использую, чтобы перевернуть только одну видимую ячейку. Любая помощь в правильном направлении будет принята с благодарностью.

func flipAction() {
        let visibleRect = CGRect(origin: mainCollecView.contentOffset, size: mainCollecView.bounds.size)
        let visiblePoint = CGPoint(x: visibleRect.midX, y: visibleRect.midY)
        let visibleIndexPath = mainCollecView.indexPathForItem(at: visiblePoint)
        let cell = mainCollecView.cellForItem(at: visibleIndexPath!) as! MainCollectionViewCell

if cell.isFlipped == false {
       //Flip card
        cell.flip()
        cell.isFlipped = true
        flipBtn.setImage(UIImage(named: "reversed"), for: .normal)

    } else {
        // Flip the card back
        flipBtn.setImage(UIImage(named: "Calendar"), for: .normal)
        cell.flipBack()
        cell.isFlipped = false
    }
   }

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете использовать разные подходы. Но если вы хотите, чтобы все было перевернуто, используйте переменную в вашем классе, например

      var isFlipped:Bool = false 

Внутри вашей функции сейчас:

      flipAction() {
           isfliped =  !isfliped
           mycollection.reload() //where mycollection is yours 
      }

Тогда внутри вашего

     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
     {
       if isfliped == false {
             // your code for cell when is not flipped 
       } else  {
             //your code for cell when is flipped
       } 

Таким образом, все ячейки будут перевернуты или не сразу, независимо от того, видны они или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...