2010-11-04 4 views
7

Quel est le meilleur à utiliser si je veux simplement une image de fond pour un UIView? Je peux accomplir ceci avec n'importe quelle méthode, mais qui est plus efficace? Mon intuition est que l'utilisation d'un UIView avec colorWithPaternImage est plus efficace que l'utilisation d'un UIImageView. Je vais l'utiliser pour chaque ligne dans un UITableView. Merci! MattcolorWithPatternImage Vs. UIImageView

Répondre

15

Entièrement en désaccord avec boreas. Il peut y avoir des différences significatives en utilisant colorWithPatternImage par rapport à d'autres stratégies en fonction de vos besoins. Par exemple, si vous utilisez un UIScrollView, l'utilisation de colorWithPatternImage ne permettra pas le défilement de l'image. Cela dépend aussi généralement de la taille de votre vue, car il existe un compromis entre les performances et l'empreinte mémoire pour différentes stratégies de pavage.

Découvrez WWDC 2010 session 104 qui traite de la performance de pavage en utilisant CATiledLayer. C'est une bonne alternative à haute performance à l'utilisation de l'colorWithPatternImage intégré ou CGContextDrawTiledImage.

Si votre exigence est simplement d'afficher une seule image statique 320x480, alors il n'y aura pas de différences significatives dans les différentes stratégies, mais si vos exigences sont plus complexes, il y en a certainement. Et si je ne veux pas que l'image soit en mosaïque?

+1

Je veux juste qu'il apparaisse une fois comme si j'utilisais un 'UIImageView'? – ma11hew28

+0

Si vous ne voulez pas que l'image soit en mosaïque, vous ne pouvez pas utiliser 'backgroundColor colorWithPatternImage' à moins que la vue pour laquelle vous définissez la couleur d'arrière-plan soit exactement la même taille que l'image que vous définissez comme motif d'arrière-plan. Dans ce cas, vous devrez ajouter 'UIImageView' en tant que sous-vue. Les vues simples sont utilisées partout dans iOS et ont généralement très peu d'impact sur les performances. Donc, il n'y a rien de mal à avoir une image d'arrière-plan personnalisée pour vos viewviewcells. – memmons

+0

Donc, si la vue pour laquelle j'ai défini la couleur d'arrière-plan est exactement de la même taille que l'image que je définis comme motif d'arrière-plan, est-il plus efficace d'utiliser colorWithPatternImage plutôt qu'une UIImageView? Est-ce que cela fait une différence si l'image est affichée une seule fois sur l'écran ou si la même image ou une image différente est affichée dans chaque cellule de vue de table? – ma11hew28

1

Oui, il y a un UIView de toute façon, alors pourquoi s'embêter avec un autre UIImageView?