Ich versuche, einen benutzerdefinierten Zelltrennzeichen nur der ersten Zeile (wo alle angeforderten Oberflächen ist) der Tabelle hinzuzufügen. Wenn ich jedoch scrolle, erscheint die dicke graue Linie irgendwann auch in anderen Reihen. Wie verhindere ich das?Hinzufügen von benutzerdefinierten Trennhöhe zu UITableViewCell funktioniert nicht beim Bildlauf
In meiner cellForRowAtIndexPath
Methode Ich habe dies:
if (indexPath.row == 0 && [cell.dicInfo[AIRCRAFTSURFACE_SURFACE] isEqualToString:@"ALL REQUESTED SURFACES"]) {
cell.lblSurface.font = [UIFont fontWithName:@"OpenSans-Bold" size:16.0f];
CGRect sizeRect = [[UIScreen mainScreen] bounds];
NSInteger separatorHeight = 10;
additionalSeparator.frame = CGRectMake(0,cell.contentView.frame.size.height-separatorHeight,sizeRect.size.width,separatorHeight);
additionalSeparator.backgroundColor = [UIColor lightGrayColor];
[cell addSubview:additionalSeparator];
}
Ich habe die UIView *additionalSeparator;
auf viewDidLoad
initialisiert.
Könnte es daran liegen, dass die Zellen wiederverwendet werden und dadurch etwas passiert?
Ja, das liegt daran, dass die Zellen wiederverwendet werden. Sie fügen die Unteransicht zum ersten Mal hinzu, wenn Zeile 0 angefordert wird ... Wenn Sie einen Bildlauf durchführen, wird diese Zelle möglicherweise für Zeile 6 wiederverwendet ... Sie haben die Unteransicht jedoch nicht entfernt. Persönlich würde ich 3 Zelltypen machen: "Title Row" "Separator Row" und "Line Item Row". Dann muss ich mir keine Sorgen machen (und es ist eine viel sauberere Methode, als Subviews innerhalb von 'cellForRowAtIndexPath' zu erstellen/hinzuzufügen) – DonMag