2017-06-01 6 views
0

Ich habe eine UICollectionView erstellt, die ihre Elemente basierend auf einem bestimmten Trigger verschiebt. Ich versuche, die Zellen Übergang zu animieren von:UICollectionViewCell verschwindet, wenn Einstellungen contentOffset

  UIView.animate(withDuration: 0.4, 
          delay: 0.5, animations: { 

          self.headingsCollectionView.contentOffset = CGPoint(x: x, y: 0) 
          self.headingsCollectionView.reloadItems(at: [indexPath]) 
      }) 

Die Animation erfolgreich ist, ist das Problem, wenn ich die Collectioncontent ändere aus dem aktuellen Eintrag verschwindet statt Scrollen.

  • Ich habe versucht, das aktuelle Element Nachladen (als here vorgeschlagen), so dass es würde bleiben sichtbar, aber es funktioniert immer noch nicht.
  • Ich habe versucht, scrollToItemAtIndexPath:atScrollPosition:animated, aber es animiert nicht den Artikel Übergang.
  • setContentOffset: animiert Versuchte es, es animiert auch nicht.
+0

self.headingsCollectionView.reloadItems entfernen (unter: [indexPath]) –

+0

@SandeepBhandari Ich habe es ohne versucht, aber es verschwindet immer noch. – Shawerma

+0

'scrollToItemAtIndexPath: atScrollPosition: animated' sollte den Trick machen, wenn Sie es richtig implementiert haben –

Antwort

0

Weil Sie UIView.animate Methode verwenden, müssen Sie setzen self.view.layoutIfNeeded() nach programmatisch Einstellung Content

UIView.animate(withDuration: 0.4, 
        delay: 0.5, animations: { 

        self.headingsCollectionView.contentOffset = CGPoint(x: x, y: 0) 
        self.headingsCollectionView.reloadItems(at: [indexPath]) 
        self.view.layoutIfNeeded() 
    }) 
Verwandte Themen