Question

J'essaie de donner à backgroundColor de tableviewcell différents avec colorwithPatternImage et cela ne fonctionne pas comme prévu. La documentation ne dit rien sur le fait de ne pouvoir utiliser qu'un seul motif à la fois.

Disons que j'ai 3 lignes et que je place l'arrière-plan comme suit:

Cell1.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"red.png"]];

Cell2.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"green.png"]];

Cell3.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"blue.png"]];

Les 3 lignes seraient rouges. C'est comme s'il y avait une couleur globale qui est retournée.

colorWithPatternImage renvoie kCGColorSpaceModelPattern 1 pour chaque appel, quelle que soit l'image transmise. S'il était vrai que vous ne disposiez que d'un modèle global à la fois, la couleur devrait être le dernier, en d’autres mots bleu.

Cela n’a aucun sens. Quelqu'un a-t-il une expertise interne de ce qu'Apple fait ici?

MODIFIER J'utilise même un modèle différent dans une vue complètement séparée et cela affecte toujours les modèles de l'autre vue. Je suis convaincu, même si la documentation ne l'indique pas, que vous êtes limité à un motif d'image UIColor à la fois. Triste.

Était-ce utile?

La solution

Pour autant que je sache, cela n’est pas ou plus vrai. J'ai ici quelques UITableViewCells, où chacun a une backgroundImage différente, sans aucun problème.

Autres conseils

Qu'est-ce que Cell1? Où (avec quelle méthode) les mettez-vous?

Je dirais que vous devriez faire tout cela dans

- (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"]];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top