2016-12-18 6 views
0

So ändern Sie die Farbe der Tabellenansichtszelle dynamisch. Ich möchte etwas wie in Screenshot gezeigt, bitte vorschlagen.So ändern Sie die Farbe einer Tabellenansichtszelle dynamisch

enter image description here

Vielen Dank im Voraus.

+0

SWIFT oder Objektivität c? –

+0

Beide Antworten, die Sie erhalten haben, haben Ihnen Möglichkeiten gegeben, Farben basierend auf dem indexPath einer Zelle zuzuweisen. Was Sie tun müssen, ist herauszufinden, welche Farben Sie für die Zellen haben möchten und wie Sie diese Farben erzeugen. Möchten Sie die spezifischen Farben, die Sie in Ihrem Beispielbild zeigen? Ich würde vorschlagen, Ihre Beispielfarben in einen Fotoeditor wie Photoshop zu übernehmen, die RGB-Werte von jedem zu sampeln und entweder ein Array von Farbwerten (wie in @ tejendrasinghs Antwort) oder eine Funktion, die diese Farbwerte erzeugt jeder Schritt (wie in Adrians Antwort). –

+0

Wie viele Zellen haben Sie insgesamt? Sie müssen die Farbänderung vom Anfang bis zur Endzelle verteilen. –

Antwort

0

Es ist einfach zu tun:

ich eine Demo unten geben:

enter image description here

  1. Erstens ziehen Sie einen tableView-vc:

enter image description here

  1. Zweitens setzen die tableView ‚s Delegierten und Datenquelle:

enter image description here

  1. Der dritte Schritt, in Ihrem vc, setzen Sie die data:

    importieren UIKi t

    Klasse Viewcontroller: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet schwach var Tableview: UITableView!

    var cellCount: Int! = 6

    var cus_color: UIColor = UIColor.init (rot: 35/255,0, grün: 204/255,0, blau: 216,0/255,0, alpha: 1,0)

    override func viewDidLoad() { 
        super.viewDidLoad() 
    
        self.tableView.separatorStyle = .none 
    } 
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    
        return 100 
    } 
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
        return cellCount 
    } 
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    
        let cell = UITableViewCell() // or your custom cell 
    
        let perLevel:CGFloat = CGFloat(1.0)/CGFloat(self.cellCount) 
    
        cell.backgroundColor = UIColor.init(red: 35/255.0, green: 204/255.0, blue: 216.0/255.0, alpha: (perLevel + CGFloat(indexPath.row) * perLevel)) 
    
        return cell 
    } 
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
        self.tableView.deselectRow(at: indexPath, animated: false) 
    } 
    
    } 
    
0

Sie können die UITableViewCell-Eigenschaft backgroundColor verwenden, um die Zellenfarbe dynamisch festzulegen.

Beispiel-

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

    UITableViewCell* cell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"]; 
    if (!cell) { 
     cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; 
    } 
    //cellColorHolder is UIColor object type array. 
    cell.backgroundColor = (UIColor*)[cellColorHolder objectAtIndex:indexPath.row]; 
    return cell; 
} 
Verwandte Themen