UIColor colorWithPatternImage usa apenas uma imagem
-
05-07-2019 - |
Pergunta
Eu estou tentando dar diferentes tableviewcell
s de backgroundColor
com colorwithPatternImage
e ele não está funcionando como esperado. A documentação diz nada sobre apenas ser capaz de usar um padrão de cada vez.
Say I tem 3 linhas e eu definir o fundo como assim:
Cell1.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"red.png"]];
Cell2.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"green.png"]];
Cell3.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"blue.png"]];
Todas as 3 linhas seria vermelho. É como se houvesse um pouco de cor global que está sendo devolvido.
colorWithPatternImage
retornos kCGColorSpaceModelPattern 1
para cada chamada, não importa qual a imagem é passado. Se fosse verdade que você só tem um padrão global de cada vez, em seguida, a cor deve ser o último conjunto um, em outras palavras azul.
Isso não faz sentido. Alguém tem alguma experiência dentro sobre o que a Apple está fazendo aqui?
Editar I até mesmo usar um padrão diferente em uma visão completamente separado e ainda afeta os padrões da outra vista. Estou convencido de que, apesar da documentação não afirmar isso, que você está limitado a um padrão de imagem UIColor de cada vez. Sad.
Solução
Até eu posso ver isso não ou já não é verdade. Eu tenho aqui um par de UITableViewCells, onde cada um tem uma backgroundImage diferente, sem quaisquer problemas.
Outras dicas
O que é Cell1? Onde (em que método) que você está definindo esses?
Eu diria que você deveria estar fazendo tudo isso em
- (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"]];
}