Ich benutze eine UIButton, um eine Tabelle-Zelle-Element von lesen bis ungelesen anzuzeigen und umzuschalten. Ich habe ein blaues Bild als Hintergrund verwendet, um anzuzeigen, wenn ein Element ungelesen war, und das hat funktioniert, aber ich dachte mir, dass es besser wäre, die setHighlighted Funktion zu verwenden, da das Hinzufügen eines zusätzlichen Bildes zur App erspart wird. Der Code, den ich verwende, ist wie folgt:Ändern Sie die SetHighlighted für UIButton
- (void)updateReadButton{
if(article.read.boolValue){
//[readButton setBackgroundImage:nil forState:UIControlStateNormal];
[readButton setHighlighted:FALSE];
[readButton setNeedsLayout];
} else {
[readButton setHighlighted:TRUE];
[readButton setNeedsLayout];
}
}
Dies funktioniert gut für die erste Erstellung der Zelle. Aber wenn auf das Element geklickt wird und die Detailansicht angezeigt wird, schalte ich den 'read' Wert auf 'true' und ändere die setHighlighted Option von der UIButton in der Zelle auf false, aber es ändert sich nicht, wenn ich vom Detail zurückkomme Aussicht. Nur wenn die Zelle vom Bildschirm scrollt und neu erstellt wird, wird die Änderung reflektiert. Wie kann ich eine Neuzeichnung der Schaltfläche erzwingen, wenn ich zur Detailansicht navigiere?
Haben Sie 'setNeedsDisplay' anstelle von' setNeedsLayout' probiert? –
Ja, und beide scheinen nicht zu funktionieren. Ich nehme an, ich rufe es auf dem UIButton selbst an? –