9
votes

Comment ajouter une lueur extérieure à un uiImage ou uiImageView ou uIView

Je veux ajouter une ombre fanée / gogne extérieure à un uiImage / uiImageView / uIView mais je ne connais pas graphiques de base du tout.

EDIT: S'il vous plaît aider !!


0 commentaires

3 Réponses :


2
votes

En tant que réflexion sur la performance, l'iPhone OS ne prend pas en charge les propriétés ShadowColor, ShadowoffSet, Shadowopity et Shadowradius, que vous pourriez normalement utiliser dans le cacao. La plupart des gens dupliquent la forme qu'ils souhaitent briller plusieurs fois avec chaque fois que chaque fois l'opacité et la compensation de la forme d'un pixel à la fois pour simuler l'apparence d'une lueur. Si votre lueur n'a pas besoin d'être très gros, vous ne pouvez pas dire la différence.


1 commentaires

Cela prendra beaucoup de performances si la vue est mise à jour plusieurs fois par seconde. Je change de la taille à l'aide de l'événement touchettes .



8
votes

Prenez l'approche décrite par Cirrrostratus, conservez une copie en cache de celui-ci, puis appliquez une transformation pour modifier la taille et / ou la position de l'image tout en faisant glisser.

(AVERTISSEMENT, ce code n'est pas fonctionnel / testé, mais devrait vous faire démarrer) p> xxx pré>

puis dans votre méthode lors de la mise à l'échelle, vous feriez quelque chose comme: p>

// assumes UIImage *cachedImage = [self addGlowToImage:origImage]; has been called already.
// assumes ivars for scale exists

    CGRect newRect = cachedImage.bounds;
    newRect.size.width += scale;
    newRect.size.height += scale;

    [cachedImage drawInRect:newRect];  // image will be scaled to fill destination rectangle.


5 commentaires

Très bien, pas exactement ce que je voulais, mais j'accepterai, je voulais un fondu.


Vous pouvez également utiliser la propriété Ombre comme une lueur si vous changez de couleur. Simple et facile.


En 2010, lorsque la réponse a été fournie, c'était approprié. Si vous n'aimez pas l'approche, fournissez une meilleure réponse en utilisant une partie de la nouvelle API disponible.


@Markmolina je suis d'accord avec Chip Coons. Si vous n'aimez pas l'approche, fournissez une meilleure réponse vous-même au lieu de critiquer les réponses des autres. Cela n'aide pas du tout.


Bien sûr cela aide. Il avertit des programmeurs sans méfiance de mauvais code et peut-être qu'ils peuvent améliorer ce code. Je n'essaie pas de nager sur le code. C'est génial que les gens investissent du temps dans de tels sujets, mais je dis simplement que le code n'est pas optimal



6
votes

Vous pouvez utiliser ceci, simple et rapide, cela fonctionne à l'aide de UIView, Debutton, etc:

shadowView.layer.shadowRadius = 10.0f;


0 commentaires