Pergunta

Eu estou tentando dar diferentes tableviewcells 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.

Foi útil?

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"]];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top