Ne peut pas définir de cornerRadius de l'ombre ET de la couche qui a une image vue vite ses limites?

C'est estompe moi. J'ai une UIView (appelons-la "société mère"). Le dernier sous-vue de ce point de vue est une UIImageView (que l'on appellera "l'enfant"), dont l'image occupe la totalité de la "mère" de limites.

Je veux arrondir les angles sur le "parent" d'afficher et de définir une ombre portée. Je le fais sur le CALayer de "parent" comme d'habitude:

[[parent layer] setShadowOffset:CGSizeMake(5, 5)];
[[parent layer] setShadowRadius:6];
[[parent layer] setShadowOpacity:0.4];    
[[parent layer] setCornerRadius:6];

Cela montre l'ombre correctement, mais ne pas arrondir les angles.

Voici le kicker:

  1. Si je retire le "bébé" d'affichage de l'image, ou de la réduire afin de ne pas occuper la totalité limites de la "mère" de la vue, - je obtenir des coins arrondis et de l'ombre correctement sur le parent.
  2. Si je quitte le "enfant" seul, mais ensemble "clipsToBounds" sur le "parent" de vue, je reçois les coins correctement. Mais maintenant, l'ombre a disparu.
  3. Réglage de l'angle sur la couche de la enfant ainsi semble avoir aucun effet.

Il semble que les "enfants" d'affichage de l'image est juste occultant les coins arrondis sur le "parent", étant donné qu'il prend tout le rect, et le découpage basé sur la vue parent obtient les coins, mais aussi des masques hors de l'ombre. Je ne sais pas pourquoi #3 ne fonctionne pas.

Ce qui me manque? Ai-je été donnant sur quelque chose d'évident en regardant ce trop long?

Grâce.

(Scandaleusement, la balise "roundedcorners-dropshadow" existe déjà. Génial.)

InformationsquelleAutor Ben Zotto | 2010-09-14