2011-02-03 9 views
9

Estoy tratando de crear una sombra alrededor de un objeto UIView simple que se agrega encima de la vista de UIViewController. ¿cuál es la forma más directa de hacer esto?UIView con sombra

Respuesta

28

En primer lugar, asegúrese de importar la biblioteca de cuarzo Core:

#import <QuartzCore/QuartzCore.h> 

A continuación, agregue las siguientes líneas para configurar las propiedades de la sombra:

someView.layer.shadowColor = [[UIColor blackColor] CGColor]; 
someView.layer.shadowOffset = CGSizeMake(10.0f,10.0f); 
someView.layer.shadowOpacity = .5f; 
someView.layer.shadowRadius = 10.0f; 

Tenga en cuenta que si usted tiene que la propiedad clipsToBounds de view establecida en SÍ, la sombra no aparecerá.

+0

Right on. ¡Gracias! Intenté eso pero no pude entender por qué nunca funcionó y, de hecho, el problema fue que la propiedad clipsToBounds estaba establecida en SÍ. Una pregunta más es, ¿qué ocurre si quiero que la sombra esté en los 4 lados de la vista? Creo que esto solo te permite tener 2 lados en el momento cambiando el shadowOffset ... De todos modos, ¡gracias de nuevo! – zumzum

+1

Si tanto el desplazamiento como el radio son 10, la sombra se oculta detrás de alguna Vista. Si desea la sombra en los 4 lados de alguna Vista, cambie el radio para que sea mayor que el desplazamiento (o cambie la compensación a 0 para tener una sombra uniforme alrededor de alguna Vista). – FuePi

3

Me tomó algo de tiempo resolverlo. El código funciona perfecto pero debe importar cuarzo

#import <QuartzCore/QuartzCore.h>