iOS puede generar sombras dinámicamente para cualquier UIView, y estas sombras se ajustan automáticamente para adaptarse a la forma del elemento en cuestión, incluso siguiendo las curvas de texto dentro de un UILabel. Esta funcionalidad está integrada, por lo que todo lo que necesita hacer es configurar sus propiedades, y hay cuatro cosas que debe tener en cuenta:
shadowColor establece el color de la sombra y debe ser un CGColor.
shadowOpacity establece cuán transparente es la sombra, donde 0 es invisible y 1 es lo más fuerte posible.
- ¿Cuántas personas trabajan en el equipo de revisión de aplicaciones en Apple?
- ¿Cómo puedo construir un compilador de iOS en línea?
- Si tuviera 15 años y quisiera entrar en el desarrollo de juegos móviles, ¿dónde comenzaría?
- ¿Cuáles son algunos consejos para aprovechar al máximo WWDC?
- ¿Cómo puedo silenciar un mensaje grupal de iOS?
shadowOffset establece qué tan lejos de la vista debe estar la sombra, para dar un efecto de compensación 3D.
shadowRadius establece qué tan ancha debe ser la sombra.
Aquí hay un ejemplo simple para comenzar:
yourView.layer.shadowColor = UIColor.black.cgColor
yourView.layer.shadowOpacity = 1
yourView.layer.shadowOffset = CGSize.zero
yourView.layer.shadowRadius = 10
Generar sombras dinámicamente es costoso, porque iOS tiene que dibujar la sombra alrededor de la forma exacta del contenido de su vista. Si puede, establezca la propiedad shadowPath en un valor específico para que iOS no necesite calcular la transparencia dinámicamente. Por ejemplo, esto crea una ruta de sombra equivalente al marco de la vista:
yourView.layer.shadowPath = UIBezierPath (rect: yourView.bounds) .cgPath
Alternativamente, solicite a iOS que guarde en caché la sombra renderizada para que no sea necesario volver a dibujarla:
yourView.layer.shouldRasterize = true