2017-11-06 3 views
1

Ich hoffe, jemand kann Ihnen bei diesem Coding-Problem helfen. Ich mag, dass meine Sammlung Ansicht Zelle Hintergrundfarbe mit einer Navigationsleiste Taste ändern, und das ist mein Bar-Taste Selektor Code:Ändern der Sammlung Anzeigen Zelle Hintergrund mit Navigationsleiste Schaltfläche Swift

func handleBrightnessChanged() { 
    let readingCell = ReadingsDisplayCell() 
    readingCell.backgroundColor = .red 
} 

Allerdings ist die Schaltfläche nichts tun, wenn ich darauf klicken. Kannst du mir bitte helfen? Unten ist mein UICollectionViewCell Klasse:

class ReadingsDisplayCell: UICollectionViewCell { 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     backgroundColor = UIColor.gray 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("fatal error in Daily cell") 
    } 

} 

Ihnen sehr danken.

+0

Ist zur Laufzeit die Hintergrundfarbe der CollectionView-Zelle grau? –

Antwort

0

Sie erstellen eine neue Zelle und legen ihre Hintergrundfarbe fest, die keine Auswirkung auf die vorhandenen Zellen hat. Gehen Sie folgendermaßen vor, um die Farbe Ihrer Zellen zu ändern.

Erstellen Sie zuerst eine Eigenschaft, um die Zellfarbe zu verfolgen.

var currentBackgroundColor = UIColor.gray 

In Ihrer handleBrightnessChanged Funktion, um diese Eigenschaft zu Ihrem neuen Wert gesetzt.

func handleBrightnessChanged() { 
    currentBackgroundColor = .red 
} 

Als nächstes stellen Sie die Hintergrundfarbe Ihrer Zellen in Ihrem collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) Funktion.

Damit diese Änderung wirksam wird, wenn die Schaltfläche gedrückt wird, laden Sie die Daten der Sammlungsansicht erneut, wenn Sie auf die Schaltfläche klicken.

func handleBrightnessChanged() { 
    currentBackgroundColor = .red 
    collectionView.reloadData() 
} 
+0

Vielen Dank! Genau das, wonach ich suche. –

Verwandte Themen