Cellules de tableau de défilement rapide avec des images. Est-ce comme ça que c'est fait?

StackOverflow https://stackoverflow.com/questions/1606606

  •  05-07-2019
  •  | 
  •  

Question

Je tente de créer une liste de défilement rapide à l'aide du créateur de Tweetie, Loren Brichter technique (ou cette technique ). Je pense que l’idée est de "faire votre propre dessin". au lieu d'utiliser des sous-vues et des images dans UITableViewCell.

Ci-dessous, j'ai étendu son exemple pour inclure une image et je ne suis pas sûr que ce soit la bonne façon de le faire.

J’ai essayé de jouer avec CALayer et j’ai du mal à «comprendre». Donc, dans cet exemple, je viens de dessiner une image. Mais je ne suis pas sûr - cela semble identique à la façon dont une image est affichée dans une vue? Ensuite, je vais utiliser UIGraphicsBeginImageContext pour inclure plus d’images (par exemple, footerImage)

Est-ce que ce que je fais dans cet exemple va améliorer les performances au lieu de tout créer dans IB?

Merci

- (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];
}
Était-ce utile?

La solution

Oui, cette technique améliorera les performances par rapport à une cellule IB droite. Mais si vous rendez tous les éléments d’une cellule opaques, les performances d’IB peuvent être plutôt correctes. Vous voudrez peut-être les essayer au préalable avant de passer par beaucoup de code pour créer des cellules par ailleurs simples.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top