Kein Duplikat:
Die Frage/Antwort ist über die Änderung der Farbe. Ich habe kein Problem, die Farbe der Zelle zu ändern, eher habe ich ein Problem, wenn ich die "Farbe" .clear
habe und eine Zelle einfüge, wird die Zelle "zurückgesetzt".Cell backgroundColor klar seltsames Verhalten beim Einfügen einer Zeile
Immer wenn ich die Hintergrundfarbe meiner Zelle auf .clear
setze und ich eine Zeile in die Tabelle einfüge, wird die Zelle automatisch auf ihren ursprünglichen Zustand zurückgesetzt. Dies passiert nicht, wenn die Hintergrundfarbe einen Wert hat.
Zum Beispiel:
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
let gesture = UIPanGestureRecognizer()
gesture.addTarget(self, action: #selector(handlePan))
gesture.delegate = self
addGestureRecognizer(gesture)
backgroundColor = .clear
}
func handlePan(_ recognizer: UIPanGestureRecognizer) {
if recognizer.state == .changed {
let translation = recognizer.translation(in: self).x
contentView.frame.origin.x += translation
recognizer.setTranslation(.zero, in: self)
}
if recognizer.state == .ended {
guard let index = delegate?.tableView.indexPath(for: self) else { return }
delegate?.insert(index)
}
}
Meine Viewcontroller:
func insert(_ index: IndexPath) {
let cell = tableView.cellForRow(at: index) as? PannableCell
items.append("some")
let path = IndexPath(row: index.row + 1, section: index.section)
tableView.insertRows(at: [path], with: .fade)
}
Frage:
Wie kann ich meine Hintergrundfarbe meiner Zelle zu .clear
gesetzt und eine Zeile einfügen, ohne die Zelle zu sein zurücksetzen? Ich möchte das, denn nachdem ich die Zelle eingefügt habe, möchte ich die ursprüngliche Zelle wieder an ihre ursprüngliche Position animieren.
bearbeiten:
die Farbe backgroundColor
Einstellung funktioniert nur in iOS 9. In iOS 10 noch die Zelle setzt irgendwie ..
Mögliche Duplikate von [UITableViewCell zeigen weißen Hintergrund und können nicht auf iOS7 geändert werden] (http://stackoverflow.com/questions/18878258/uitableviewcell-show-white-background-and-cannot-be-modified-on-ios7) – kevin
Danke für den tollen Link. Während es das Problem nicht behebt, wenn ich möchte, dass die Farbe ".clear" ist, tut es dies, wenn ich eine andere Farbe verwende (ich habe die Hintergrundfarbe meiner Tabelle als Temp-Fix verwendet). –
Seltsamerweise, wenn ich die 'backgroundColor' in eine andere Farbe (zum Beispiel:' .gray') ändere, wird die Zelle immer noch zurückgesetzt (beim Einfügen einer neuen Zelle), bis die Zelle wiederverwendet wird. Die Antwort im Link kkoltzau zur Verfügung gestellt behoben dies (wenn die Farbe nicht '.clear' ist. –