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
Vielen Dank im Voraus.
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
Vielen Dank im Voraus.
Es ist einfach zu tun:
ich eine Demo unten geben:
tableView
-vc
:tableView
‚s Delegierten und Datenquelle: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)
}
}
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;
}
SWIFT oder Objektivität c? –
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). –
Wie viele Zellen haben Sie insgesamt? Sie müssen die Farbänderung vom Anfang bis zur Endzelle verteilen. –