2014-02-12 13 views
6

Mit diesem Code auf iOS 7 Ergebnisse im Abscheider Sicht verdeckt oder verkürzt zu werden:UITableViewCellAccessoryCheckmark umfasst Zellseparator auf iOS 7

cell.accessoryType = UITableViewCellAccessoryCheckmark; 

Wie kann ich den Separator Ansicht beheben?

Ich verwende Prototypzellen, aber ich untergliedere sie nicht.

enter image description here

[EDIT]

Hier ist der relevante Code aus cellForRowAtIndexPath:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath]; 

if (indexPath.section == kDefaultViewSection){ 
    NSArray *defaultViewNames = @[LQSettingsSentenceView, LQSettingsFullTextView, LQSettingsFlashcardsView]; 
    NSString *preferredViewName = [LQSettings valueForKey:LQSettingsPreferredLessonView]; 
    if ([defaultViewNames[indexPath.row] isEqualToString:preferredViewName]){ 
     cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    } else { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 
} 



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    if (indexPath.section != kDefaultViewSection){ 
     return; 
    } 

    // Just turn all checks off for a minute 
    for (int x=0; x<3; x++) { 
     NSIndexPath *ip = [NSIndexPath indexPathForRow:x inSection:kDefaultViewSection]; 
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:ip]; 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    cell.accessoryType = UITableViewCellAccessoryCheckmark;  
} 
+0

posieren Sie Ihre cellrowAtIndexPath und didselectedrow Methode – codercat

+0

Sicher. Grundsätzlich macht was ich vorher gesagt habe. – arsenius

+0

Entfernen Sie alte Teilansichten aus der Zelle, bevor Sie sie erneut verwenden? Etwas wie: if ([subview isKindOfClass: [UIView-Klasse]]) [subview removeFromSuperview]; – Sandeep

Antwort

0

Disable Separator in der tableview und subview eine benutzerdefinierte Separators Ansicht an der Unterseite der Zelle hinzuzufügen.

+0

Das ist ein Workaround, aber nicht wirklich eine richtige Lösung. Ich habe viele Zellen, die ich zu IB oder Unterklasse hinzufügen müsste. Das scheint wirklich ein Fehler von Apple zu sein. – arsenius

+0

Ja, ich weiß .. Auch ich war auf dieses Problem gestoßen. Schließlich griff ich auf die erwähnte Methode zurück. Bitte posten Sie, wenn Sie eine bessere Lösung finden. – Adithya

2

In meinem Fall habe ich die vom System bereitgestellte Trennlinie deaktiviert und meine benutzerdefinierte Trennlinie in die xib der Zelle eingefügt. Manchmal bedeckt das rechte Häkchen den Teil der unteren Trennlinie. Was ich getan habe, um das Problem zu lösen ist, dass ich habe die nachlaufende Einschränkung auf die cell anstelle der contentView geändert. [Nicht die Super]

enter image description here

-1

zu Xib oder Storyboard gehen, Select und Tableview setzen Separator Stil als einzige Zeile. Snapshot

Verwandte Themen