2016-04-07 7 views
0

Ich arbeite an einer Spielzeug-App, um etwas anderes mit UICollectionView zu untersuchen. Weil ich brauche zu (nur die Prämisse akzeptieren und weitermachen) Ich versuche, Text in den Zellen mit Auto-Layout anzuzeigen. Aus irgendeinem Grund beginnt die Anwendung nach einem bestimmten Punkt mit EXC_BAD_ACCESS(code=2, address=0x7fff532ebfd0) zu versagen. Ich kann nicht herausfinden warum.UICollectionView Auto Resizing Ergebnisse in Fehler

Ich mache nichts Besonderes. Hier ist der geschätzte Größencode.

if let cvl = collectionView.collectionViewLayout as? UICollectionViewFlowLayout { 
     cvl.estimatedItemSize = CGSize(width: 40, height: 30) 
    } 

Hier ist die Datenquellenmethode.

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("reuse", forIndexPath: indexPath) as! LabelCell 

    let string = stCrispensDaySpeech[indexPath.row] 

    cell.label.text = string 
    cell.backgroundColor = UIColor.grayColor() 

    return cell 

} 

Sie können das gesamte Projekt bei furry-waddle tag bekommen.

+0

Überprüfen Sie die Wiederverwendungskennung, die verwendet wird, korrekt oder nicht. –

+0

"Wiederverwendung" ist korrekt. Wenn es falsch war, würde ich auf dieser Linie zusammenbrechen. –

Antwort

1

sah ich Ihren Code, und ich fand das Problem:

Das Problem ist, wenn "" Zeichen erscheinen, weil die Breite der Zelle (Minimum = 40)

einfach es so Ihren Code ändern:

if let cvl = collectionView.collectionViewLayout as? UICollectionViewFlowLayout { 
     cvl.estimatedItemSize = CGSize(width: 10, height: 30) 
    } 
+0

Nailed it! Vielen Dank. (Dies führt zu einem separaten Fehler beim Layout der letzten beiden Wörter der Zeichenfolge. Korrigiert durch Ändern in 'CGSize (Breite: 10, Höhe: 20)'). –