2016-07-02 19 views
2

Wie bekomme ich alle Zellen in collectionView? Die collectionView hat nur eine Methode indexForVisibleItem und ich kann nur die Zellen auswählen, die auf dem Bildschirm angezeigt wird, aber ich kann nicht auf die unsichtbaren Zellen zugreifen. Zum Beispiel habe ich 50 Bilder in collectionView, wenn ich versuche, die indexForVisibleItem Methode zu verwenden, bekomme ich nur 24 Bilder. Wie kann ich alle Zellen 50 Bilder in CollectionView auswählen? Wie kann ich diese Aufgabe durchführen?Holen Sie sich alle Zellen in CollectionView

mein Code:

@IBAction func selectAllActionBtn(sender: AnyObject) { 

    dictionaryOfImagesForExport = [:] 
    dictionaryOfGetImageUrl = [:] 
    if editing { 
    let fileManager = NSFileManager.defaultManager() 
    do { 
     let document = try fileManager.URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false) 

     let getFolders = try fileManager.contentsOfDirectoryAtURL(document, includingPropertiesForKeys: nil, options: .SkipsHiddenFiles) 

     for folder in getFolders { 
      if folder.lastPathComponent! == albumName { 
       let getImages = try fileManager.contentsOfDirectoryAtURL(folder, includingPropertiesForKeys: nil, options: .SkipsHiddenFiles) 
       for index in 0...getImages.count { 
        let indexP = NSIndexPath(forItem: index, inSection: 0) 
        let cell = myCollectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexP) as! AlbumImagesCollectionViewCell 

        for img in getImages { 
         cell.imageViewCell.image = UIImage(data: NSData(contentsOfURL: img)!) 


         cell.imageViewCheck.image = UIImage(named: "check.png") 
         dictionaryOfImagesForExport.updateValue(cell.imageViewCell.image!, forKey: indexP.row) 
         dictionaryOfGetImageUrl.updateValue(cell.imageUrlLabel.text!, forKey: indexP.row) 
        } 


       } 
      } 
     } 

    }catch { 
     print(error) 
    } 

     exportBtn.enabled = true 
     moveBtn.enabled = true 
     deleteBtn.enabled = true 
    } 


} 

dank voran

+0

nein - die Zellen existieren nicht wirklich. Was willst du eigentlich erreichen, warum brauchst du die Zellen überhaupt? nur um sie alle als ausgewählt zu markieren? rufen Sie auch 'dequeueReusableCellWithRuseIdentifier' nie außerhalb der Sammlungsdelegiertenfunktion auf ... – Wain

+0

ich muss alle auswählen ich habe app photo vault Ich muss die Benutzerfähigkeit nehmen, um alle Bilder auszuwählen (um alle Zellen (Images) zu erhalten) einige Aufgaben wie Löschen aller Bilder in Alben Wie kann ich diese Aufgabe erreichen? –

+0

überprüfen Sie diesen Link könnte Ihnen helfen http://stackoverflow.com/questions/19916900/selecting-all-the-items-in-uicollectionview-ios-even-the-cells-that-are-not-vis –

Antwort

0

Wenn Ihre Kollektion 24 Zellen Dislay, bedeutet dies, gibt es nur 24 Zellen in der Sammlung Ansicht.

Wenn Sie alle wollen überprüfen, ich glaube, Sie sollten die Zelle Modus wie folgt

class cellMode{ 
    ...... 
    var status = false 
    ...... 
} 

Ändern Sie den Status der Zellen implementieren und laden Kollektion, wenn select/alle abwählen.

+0

Vielen Dank, können Sie mir ein Beispiel geben –

Verwandte Themen