Moyen le plus rapide pour faire de l'ombre sur iOS?
QuartzCore .la couche.l'ombre de la sucer jusqu'à la performance. Ils semblent avoir besoin d'être re-rendu à chaque fois que quelque chose change, provoquant tout à la traîne.
Coregraphics gradient (pour 1 chemin des ombres) - ne pas regarder à droite. si votre dégradé va de 0,3 alpha à 0, elle a de drôles de effet à l'endroit où vous pouvez "voir" à l'arrêter. Il n'a tout simplement pas agréable à regarder, ou naturel. Peut-être qu'il n'est pas dégradée, mais je suis sûr que j'ai entendu graphiques de base gradients sont. C'est bizarre, je ne sais pas.
Coregraphics ombre - prendre du temps pour rendre comme vous les mettre, mais sinon belle performance. C'est juste que le deuxième vous êtes en attente pour une vue à apparaître, car il a rendu l'ombre de la première, qui est le problème.
Donc, je dois être en manque de quelque chose. Est-il une autre méthode qui ressemble à droite, et il est prompt à la fois dans le temps de rendu et des performances?
Vous devez vous connecter pour publier un commentaire.
L'ajout d'un shadowPath devrait vous donner un énorme gain de performance. L'exemple suivant suppose que vous ne voulez l'ombre sur les côtés de votre point de vue
EDIT:
À défaut d'un CALayer dessine une ombre lors des animations, le code suivant permet de mettre en cache l'ombre en tant que bitmap et les réutiliser au lieu de le restituer:
rasterizationScale
à l'écran principal de l'limites, sans quoi le BMP sera le non-Retina affichage étiré jusqu' (ce qui est laid)...shadowPath
n'a aucun effet sur les performances pour moi.shadowOffset
ombres rapidement, mais l'iPhone 4 gal et pépins et à travers le dessin de lashadowOffset
de l'ombre.rasterizationScale
peut vous apporter de meilleures performances, mais pas le meilleur. je l'utilise dans mon clavier personnalisé et obtenir encore peu de lag au début.J'ai souvent vu des gens à l'aide de la ÉNORME impact sur les performances d'affichage du calque pour créer un coin arrondi ou dropshadow. Quelque chose comme ceci:
Cela a un ÉNORME impact sur les performances, surtout avec l'ombre. Mettre des points de vue comme cela dans une UITableView (ou fait tout ce qui bouge) va créer un android-ish de défilement de l'expérience, vous ne voulez pas que. Si vous avez besoin d'animation ou de déplacer la vue, d'éviter de créer des coins arrondis ou les ombres portées comme ceci par n'importe quel moyen!
De Rencontrer Les Graphiques
J'ai créé un simple sous-classe UIView pour vous montrer comment obtenir le même résultat de manière un peu différente. Il utilise des Graphiques de Base pour dessiner la vue et à l'inverse le code ci-dessus, il n'a pas d'incidence sur les performances.
Voici le code de dessin:
Voir ce blog:
http://damir.me/rounded-uiview-with-shadow-the-right-way