Est-ce que Quartz pour iPhone dessiner des parties non visibles d'une vue?
-
19-09-2019 - |
Question
Je me demande ce qui est la meilleure façon, sur iPhone, surtout quand je dois tirer en termes de rapidité et d'efficacité, pour dessiner un cadre autour d'une image beaucoup de ces images:
1) Dessin l'image et le cadre autour ou 2) Dessin d'un rect, le remplissage avec une couleur et le dessin de l'image dans ce pixel rect laissant un peu de décalage pour reproduire la trame
Est-ce que Quartz tout ce qu'il tire est dit ou est-il assez intelligent pour dessiner seulement ce qui est vraiment visible? Mon sentiment est que la première approche est meilleure, car il est en fait moins le dessin fait. Est-il vraiment?
Merci P.
La solution
dessin quartz n'aura lieu dans les limites de la vue, si vous faites le dessin personnalisé dans -drawRect:.
Cela dit, je pense que vous verrez les meilleures performances si vous créez simplement UIImageViews pour chaque image, puis utilisez le borderWidth
, borderColor
et propriétés éventuellement cornerRadius
sur la couche de votre point de vue de définir une frontière. Par exemple:
imageView.layer.cornerRadius = 10.0f;
imageView.layer.borderWidth = 3.0f;
imageView.layer.borderColor = [[UIColor blackColor] CGColor];
placera une échelle de 3 pixels bordure noire autour de votre point de vue, et lui donner un rayon de 10 pixels dans les coins.
Autres conseils
Si la performance est un problème, vous devriez essayer de réduire le nombre d'opérations que vous effectuez sur le contexte graphique, en particulier ceux qui ont pas de composants visibles.
Dans votre cas, je pense que vous avez besoin de tester les deux options sur un iPhone (ist gen si possible) et les référence. Peut-être qu'il est plus facile de simplement remplir le rectangle entier plutôt que de calculer des pixels qui font partie du cadre et qui ne sont pas?
Cela dépend de la puce graphique.