Quartz ombres portées sur la base ne fonctionnent pas pour moi UITextView
-
25-09-2019 - |
Question
Je suis en mesure d'ajouter des ombres à de nombreux objets de l'interface utilisateur à mon avis, y compris déposer plutôt bien shadowing certains dessin personnalisé dans un UIImageView. Cependant, le même code ne produit rien lorsqu'il est appliqué à un 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 que je suis absent? J'espérais utiliser le 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];
*/
La solution
Je sais que l'ombre ne fonctionne pas si la vue a clipsToBounds
ensemble. Peut-être UITextView
a que défini par défaut?
Autres conseils
Vous devez définir clipsToBounds 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 coupé des limites visibles de la vue . Je suis à la recherche d'un moyen propre autour de cela.
Guillaume est juste sur le paramètre 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 ...