2010-12-09 4 views
4

J'ai été capable d'ajouter des ombres à de nombreux objets d'interface utilisateur à mon avis, y compris l'ombrage de certains dessins personnalisés dans une UIImageView. Toutefois, le même code ne produit rien lorsqu'il est appliqué à un UITextView:Les ombres portées basées sur le quartz ne fonctionnent pas pour moi sur UITextView

[desc.layer setShadowColor:[[UIColor blackColor] CGColor]]; 
[desc.layer setShadowRadius:2.0f]; 
[desc.layer setShadowOffset:CGSizeMake(1, 1)]; 
[desc.layer setShadowOpacity:0.8f]; 

Est-ce quelque chose qui me manque? J'espérais utiliser du quartz pour ajouter une bordure et une ombre portée. Le code frontière ne fonctionne lorsque commenté dans:

//Border. 
/* 
[desc.layer setBackgroundColor:[[KookaSettings sharedInstance].cellBackgroundColorD CGColor]]; 
[desc.layer setBorderColor: [[UIColor blackColor] CGColor]]; 
[desc.layer setBorderWidth:1.0f]; 
[desc.layer setCornerRadius:8.0f]; 
*/ 

Répondre

10

Je sais que l'ombre ne fonctionne pas si la vue a clipsToBounds ensemble. Peut-être UITextView a cet ensemble par défaut?

+0

Merci! \t [desc setClipsToBounds: NO]; – Diziet

1

Vous devez définir clipsToBounds sur NO pour l'ombre, mais l'inconvénient est que si votre texte est plus long que la zone visible de la vue et que vous devez le faire défiler, il ne sera plus attaché à la vue visible limites. Je cherche un moyen propre de contourner cela.

1

Guillaume a raison sur le réglage ClipsToBounds.

Il est un peu désordonné, mais vous pouvez toujours ajouter une vue dégagée derrière le UITextView et déposer une ombre sur elle ...

Questions connexes