collectionView: reloadData funktioniert, reloadItemsAtIndexPaths nicht

7

Ich habe ein UICollectionView , dessen Quelldaten sich manchmal bei Offscreen ändern. Um es zu aktualisieren, wenn es zurückkehrt, schrieb ich in CollectionViewController :

%Vor%

... und das funktioniert, aber ich brauche nie mehr als ein oder zwei Zellen in meinem UICollectionView zu aktualisieren, also dachte ich, es wäre besser, wenn ich die obige Version durch folgende ersetzen würde:

%Vor%

... aber wenn ich das tue, gibt Xcode mir einen Fehler, der sagt:

  

Operand von Postfix '!' sollte optionalen Typ haben, löschen Sie '!' "."

Wenn ich das '!' lösche, heißt das, dass UICollectionView kein Mitglied namens reloadItemsAtIndexPaths hat. Was mache ich falsch?

    
Le Toucan Sale 13.01.2015, 20:32
quelle

4 Antworten

17

Aus Ihrem Code sieht es so aus, als hätten Sie am Ende Ihre CollectionView als Optional (mit?) deklariert und vielleicht mit einem @IBOutlet mit Ihrem Storyboard verknüpft. Um das Problem zu beheben, sollten Sie die? aus dem:

@IBOutlet var collectionView: UICollectionView?

und ersetze es mit:

@IBOutlet var collectionView: UICollectionView!

Auf diese Weise sagen Sie dem Compiler, dass Ihre CollectionView definitiv existiert (weil Sie sie aus Ihrem Storyboard verlinkt haben).

Alternativ können Sie Ihre CollectionView binden, indem Sie dies tun:

%Vor%     
Valentin 13.01.2015, 21:28
quelle
3

Swift 3 Versionscode

%Vor%     
mriaz0011 23.03.2017 19:38
quelle
1

Swift 4 lade alle Elemente im Abschnitt

neu %Vor%     
Vac 08.01.2018 16:12
quelle
0

Wenn Sie für eine einzelne Zelle neu laden möchten, können Sie die spezifische Zelle wie folgt angeben: -

%Vor%

Hoffe, das hilft.

    
Nizzam 16.10.2017 08:33
quelle

Tags und Links