2016-07-04 4 views
0

Also mein aktueller Code wird die Liste überhaupt nicht scrollen, unabhängig von der Zahl, die von messageCount zurückgegeben wird. Dies befindet sich in viewDidLoad() und die Daten werden von Firebase aufgefüllt. Was verursacht das?Wie scrollt man zum Ende einer UICollectionView?

Aktuelle Code:

self.messages.removeAll() 
    collectionView?.reloadData() 
    refHandle = self.ref.child("messages").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in 
     self.messages.append(snapshot) 
     self.collectionView?.insertItemsAtIndexPaths([NSIndexPath(forItem: self.messages.count - 1, inSection: 0)]) 
    }) 

    refHandle = ref.child("messages").observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in 
     let messageCount = Int(snapshot.childrenCount) 
     print(messageCount) //temp 
     self.collectionView?.scrollToItemAtIndexPath(NSIndexPath(forItem: messageCount - 1, inSection: 0), atScrollPosition: .Bottom, animated: true) 
    }) 
+0

Versuchen Sie es auf dem Haupt-Thread aufrufen – Chris

Antwort

0

versuchen, diese

`` `

DispatchQueue.main.async(execute: { 
       self.collectionView?.reloadData() 
       self.scrollToBottom() 
      }) 

` `` innerhalb des Verschlusses beobachten

und dies ist die Rolle zu untere Funktion

`` `

` ``