2017-07-05 3 views
0

Ich habe Fragen über die accessoryType von Zellen. Ich benutze eine Zelle mit einer disclosureIndicator als accessoryType und ich möchte die Farbe ändern, aber ich kann nicht. Weiß jemand, ob das ein Fehler ist oder ob Apple mich zwingt, die graue Farbe zu verwenden? Eigentlich kann ich die Farben anderer accessoryType ändern.Swift - Wie ändert man die Farbe eines AccessoryType (DisclosureIndicator)?

Mein Code sieht wie folgt aus:

let cell = tableView.dequeueReusableCell(withIdentifier: "identifier", for: indexPath) as! customCell 
cell.tintColor = UIColor.red 
cell.accessoryType = .disclosureIndicator 

Und mein Pfeil ist immer noch grau. Aber wenn ich ein Häkchen accessoryType verwende, wird es rot.

Gibt es eine Möglichkeit, dies zu beheben, oder muss ich ein Farbbild verwenden?

+2

Basierend auf zahlreichen Beiträge und Artikel (obwohl ich nichts in Apples docs finden), erscheint es 'UITableViewCellAccessoryDisclosureIndicator' ** nicht ** abgetönt werden. Am besten verwenden Sie ein Bild, bei dem der Rendermodus auf 'UIImageRenderingModeAlwaysTemplate' gesetzt ist. Siehe diesen Beitrag für Details und Beispielcode: https://StackOverflow.com/Questions/27955447/uitableviewcell-accessory-not-being-tinted – DonMag

+1

Sie können die Farbe des "disclosureIndicator" nicht ändern. – Mannopson

+1

@ k8mil Ich denke, diese Frage ist nicht doppelt oder doppelt. Es handelt sich um einen 'DisclosureIndicator', nicht um ein' Häkchen'. – Mannopson

Antwort

2

Sie können so etwas wie dieses

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) 
    cell.tintColor = UIColor.white 

    let image = UIImage(named: "Arrow.png") 
    let checkmark = UIImageView(frame:CGRect(x:0, y:0, width:(image?.size.width)!, height:(image?.size.height)!)); 
    checkmark.image = image 
    cell.accessoryView = checkmark 

    let object = objects[indexPath.row] as! NSDate 
    cell.textLabel!.text = object.description 
    return cell 
} 

Probe Pfeil Bilder

enter image description hereenter image description here

Ausgabe

enter image description here

tun
+0

Gern geschehen ..... :) Sie sollten die richtige Antwort gemäß stackoverflow-Richtlinie akzeptieren, damit andere Leute Hilfe bekommen, wenn sie das gleiche Problem haben! –

+0

Ich warte ein bisschen, wenn ich nichts finde, um es ohne ein Bild zu ändern, akzeptiere ich es. – Godlike

+0

@Godlike Yup, nehmen Sie sich Zeit, ich habe auch so suchen, aber habe keinen Erfolg, also habe ich diese Lösung in meinem Projekt anwenden, wenn Sie andere Dinge erhalten, bitte aktualisieren Sie mich, danke ... –

2

Bellow Code ist Swift 3.0 code, und wird die accessoryType Farbe nach TintColor ändern.

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
    cell.textLabel?.text = "SOME TITLE GOES HERE" 

    cell.accessoryType = .disclosureIndicator 

    cell.tintColor = UIColor.blue 


    let image = UIImage(named:"arrow1")?.withRenderingMode(.alwaysTemplate) 

    let checkmark = UIImageView(frame:CGRect(x:0, y:0, width:(image?.size.width)!, height:(image?.size.height)!)); 
    checkmark.image = image 
    cell.accessoryView = checkmark 

    return cell 
} 

enter image description here

Verwandte Themen