139 Stimmen

Wie ändert man die blaue Hervorhebungsfarbe einer UITableViewCell?

Ich frage mich, wie man die blaue Hervorhebungs-/Auswahlfarbe einer UITableViewCell ändern kann, irgendwelche Ideen?

220voto

zonble Punkte 4203

Sie können die Hervorhebungsfarbe auf verschiedene Arten ändern.

  1. Ändern Sie die selectionStyle-Eigenschaft Ihrer Zelle. Wenn Sie sie in UITableViewCellSelectionStyleGray ändern, wird sie grau sein.

  2. Ändern Sie die selectedBackgroundView-Eigenschaft. Tatsächlich ist es eine Ansicht, die den blauen Verlauf erstellt. Sie können eine Ansicht erstellen und alles zeichnen, was Sie möchten, und diese Ansicht als Hintergrund Ihrer Tabellenzellen verwenden.

147voto

T Davey Punkte 1617

Zonble hat bereits eine ausgezeichnete Antwort geliefert. Ich dachte, es könnte nützlich sein, einen kurzen Code-Schnipsel einzufügen, um ein UIView zur TableView-Zelle hinzuzufügen, das als ausgewählte Hintergrundansicht angezeigt wird.

cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

    UIView *selectionColor = [[UIView alloc] init];
    selectionColor.backgroundColor = [UIColor colorWithRed:(245/255.0) green:(245/255.0) blue:(245/255.0) alpha:1];
    cell.selectedBackgroundView = selectionColor;
  • cell ist mein UITableViewCell
  • Ich habe ein UIView erstellt und seine Hintergrundfarbe mit RGB-Farben (hellgrau) festgelegt
  • Dann habe ich die Zelle selectedBackgroundView auf das UIView gesetzt, das ich mit meiner ausgewählten Hintergrundfarbe erstellt habe

Dies hat gut für mich funktioniert. Danke für den Tipp Zonble.

31voto

Arshad Parwez Punkte 1563

UITableViewCell hat drei Standardauswahlstile:-

  1. Blau
  2. Grau
  3. Keine

Die Implementierung erfolgt wie folgt:-

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {

     [cell setSelectionStyle:UITableViewCellSelectionStyleNone];       
}

23voto

alitosuner Punkte 884

In Swift, verwenden Sie dies in cellForRowAtIndexPath

let selectedView = UIView()
selectedView.backgroundColor = .white
cell.selectedBackgroundView = selectedView

Wenn Sie möchten, dass Ihre Auswahlfarbe in jedem UITableViewCell gleich ist, verwenden Sie dies in AppDelegate.

let selectedView = UIView()
selectedView.backgroundColor = .white
UITableViewCell.appearance().selectedBackgroundView = selectedView

19voto

NatashaTheRobot Punkte 6734

Wenn Sie es appweit ändern möchten, können Sie die Logik zu Ihrem App-Delegierten hinzufügen

class AppDelegate: UIResponder, UIApplicationDelegate {

    //... abgeschnitten

   func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {

        // richten Sie Ihre Hintergrundfarbansicht ein
        let colorView = UIView()
        colorView.backgroundColor = UIColor.yellowColor()

        // verwenden Sie UITableViewCell.appearance(), um 
        // das Standardaussehen aller UITableViewCells in Ihrer App zu konfigurieren
        UITableViewCell.appearance().selectedBackgroundView = colorView

        return true
    }

    //... abgeschnitten
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X