2009-10-12 8 views
1

Je suis en train de dessiner une ombre sous une image à laquelle j'applique des coins arrondis, mais j'ai 2 problèmes:Dessiner une ombre arrondie avec Quartz

  1. L'ombre apparaît seulement sous le non zone arrondie de l'image arrondie et non pas sous les coins arrondis inférieurs comme on obtiendrait si l'application d'une ombre portée dans photoshop. L'utilisation des mêmes paramètres que dans Photoshop (un décalage de 2 y, 1 et 85% de noir) donne une ombre beaucoup plus sombre qui ne semble pas aussi floue qu'elle le devrait.

Toute aide serait appréciée s'il vous plaît.

float myColorValues[] = {0, 0, 0, 0.85}; 
    CGColorRef myColor = CGColorCreate(colorSpace, myColorValues); 
    CGContextSetShadowWithColor(context, CGSizeMake(0, -2), 2, myColor); 

    // Draw a round corner path 
    CGContextBeginPath(context); 
    CGRect rect = CGRectMake(0, 0, 68, 68); 
    addRoundedRectToPath(context, rect, cornerWidth, cornerHeight); 
    CGContextClosePath(context); 
    CGContextClip(context); 

    CGContextDrawImage(context, CGRectMake(1, 2, 70, 70), imageScaledAndCropped); 

Répondre

2

La solution est de dessiner un chemin de bézier arrondi sous l'image et d'appliquer l'ombre à cela.

+0

Veuillez montrer du code. – Moshe

Questions connexes