UIColor colorWithPatternImage verwendet nur ein Bild
-
05-07-2019 - |
Frage
Ich versuche zu geben tableviewcell
's anders backgroundColor
s colorwithPatternImage
und es ist nicht wie erwartet funktioniert.Die Dokumentation sagt nichts darüber aus, nur in der Lage, verwenden Sie ein pattern gleichzeitig.
Sagen, ich habe 3 Zeilen und ich den hintergrund so:
Cell1.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"red.png"]];
Cell2.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"green.png"]];
Cell3.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"blue.png"]];
Alle 3 Zeilen werden rot.Es ist, als wenn es ist einige Globale Farbe, die zurückgegeben wird.
colorWithPatternImage
zurück kCGColorSpaceModelPattern 1
für jeden Anruf, egal was Bild übergeben wird.Wenn es wahr war, dass Sie nur noch 1 global pattern gleichzeitig, dann sollte die Farbe sein, der Letzte Satz, mit anderen Worten blau.
Das macht keinen Sinn.Hat jemand eine Insider-know-how auf dem, was Apple hier macht?
BEARBEITEN Ich selbst nutze ein anderes Muster in einem völlig separaten Fenster angezeigt und es immer noch Einfluss auf die andere Sicht, die die Muster.Ich bin überzeugt, wenn die Dokumentation nicht dadurch, dass du nur einen UIColor Bild Muster zu einer Zeit.Traurig.
Lösung
Was kann ich sehen, ist dies nicht oder nicht mehr wahr. Ich habe hier ein paar UITableViewCells, wo jeder eine andere Background hat, ohne Probleme.
Andere Tipps
Was ist Cell1?Wo (in welcher Methode) sind Sie diese Einstellung?
Ich würde sagen, Sie sollten alles tun, diese in
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
MyTableCell *cell = (MyTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
// create cell
}
// Set up the cell...
// set up a background color
if (something)
cell.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"red.png"]];
else (another)
cell.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"green.png"]];
else
cell.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"blue.png"]];
}