Rápido rolagem células da tabela com imagens. É assim que ele é feito?
-
05-07-2019 - |
Pergunta
Eu estou tentar criar uma lista rápida de rolagem usando o criador do Tweetie, de Loren Brichter técnica (ou esta técnica ). Eu acredito que a idéia é "fazer o seu próprio desenho" em vez de usar usando subviews e imagens na UITableViewCell.
Abaixo tenho estender o seu exemplo para incluir uma imagem e eu não tenho certeza se esta é a maneira correta de fazê-lo?
Eu tenho tentado a brincar com CALayer e estou lutando para 'entrar'. Então, aqui, neste exemplo, eu simplesmente tirado uma imagem. Mas não estou certo - este parece ser o mesmo que como uma imagem é exibida em uma visão? Em seguida vou usar UIGraphicsBeginImageContext para incluir mais imagens (por exemplo footerImage)
É o que eu estou fazendo neste exemplo vai melhorar o desempenho sobre a criação de tudo em IB?
Graças
- (void)drawContentView:(CGRect)r
{
CGContextRef context = UIGraphicsGetCurrentContext();
UIColor *backgroundColor = [UIColor whiteColor];
UIColor *textColor = [UIColor blackColor];
if(self.selected)
{
backgroundColor = [UIColor clearColor];
textColor = [UIColor whiteColor];
}
[backgroundColor set];
CGContextFillRect(context, r);
// This is where I add the image to the example
//
CGRect profile = CGRectMake(0, 0, 320, 20);
[headerImage drawInRect:profile];
CGPoint p;
p.x = 12;
p.y = 9;
[textColor set];
CGSize s = [firstText drawAtPoint:p withFont:firstTextFont];
p.x += s.width + 6; // space between words
[lastText drawAtPoint:p withFont:lastTextFont];
}
Solução
Sim, esta técnica irá melhorar o desempenho sobre uma célula IB reta. Mas se você fizer todos os elementos de uma opaca celular, o desempenho do IB pode ser bastante decente -. Você pode querer tentar isso primeiro antes de ir para o caminho de um monte de código para criar o que são células de outra forma simples