Ich mache eine App, die farbige Tabellenansichtszellen verwendet, um andere Zellen in Kategorien zu trennen. Ich tue das, indem ich die Zellen unter Verwendung von if else-Anweisungen mit anderen Farben färbt. Aber aus irgendeinem Grund, wenn ich die App starte, je mehr ich in der Tischansicht nach oben und unten scrolle, desto mehr ändern sich auch die anderen Zellen zufällig. Dies ist der Code in meiner benutzerdefinierten instrumentTableCell Klasse:Tabellenansicht Zellen, die Farben beim Scrollen ändern Swift
@IBOutlet var nameLabel: UILabel?
@IBOutlet var descriptionLabel: UILabel?
@IBOutlet var thumbnailImage: UIImageView!
func configurateTheCell(recipie: Recipie) {
self.nameLabel?.text = recipie.name
self.descriptionLabel?.text = recipie.description
self.thumbnailImage?.image = UIImage(named: recipie.thumbnails)
if nameLabel!.text == "Instrument"
{
backgroundColor = UIColor.orangeColor()
nameLabel?.textColor = UIColor.blackColor()
}
else if nameLabel!.text == "Optional addon"
{
backgroundColor = UIColor.cyanColor()
}
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if nameLabel!.text == "Instrument"
{
return 20
}
else if nameLabel!.text == "Optional addon"
{
return 20
}
else
{
return 100
}
}
und das ist, was die App sieht aus wie nach dem Abwurf:
vs. wenn der Benutzer um ein wenig verschoben hat:
auch wenn jemand weiß wie, ich möchte die farbigen Zellen auch kleiner sein, so dass die App sieht schöner aus.
zeigen uns den Inhalt der 'cellForRowAtIndexPath festlegen:' Methode – arturdev
Es ist, weil celles wiederverwendet werden. Um nach 'else if nameLabel! .text ==" Optionales Addon "{backgroundColor = UIColor.cyanColor()}' do 'else {backgroundColor = UIColor.clearColor()} '(oder whiteColor()) – Larme
@Larmee danke das hat funktioniert ! – zach2161