with rounded radius corner and ios uiview ios8 calayer shadow

ios - rounded - ¿Evita que la sombra de CALayer afecte a las subvistas?



uiview shadow swift 4 (1)

Esto sucede cuando la vista principal tiene alfa menos de 1.0 o no tiene color de fondo (es decir, está configurado para borrar el color). En ese caso, la sombra se traduce en subvistas. Vea mi respuesta here para más detalles.

Apple Docs prueba esto:

La Figura A-7 muestra varias versiones diferentes de la misma capa de muestra con una sombra roja aplicada. Las versiones izquierda y central incluyen un color de fondo para que la sombra aparezca solo alrededor del borde de la capa. Sin embargo, la versión de la derecha no incluye un color de fondo. En este caso, la sombra se aplica al contenido, el borde y las subcapas de la capa.

Tengo un UIControl personalizado y quiero que tenga una sombra, así que establezco las propiedades relevantes en su layer . Una sombra aparece alrededor de la vista como se desee, pero también aparece una sombra debajo del texto de una UILabel , que es una subvista. ¿Cómo detienes esto? Solo quiero la sombra alrededor de la vista externa.

... init() { label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false self.translatesAutoresizingMaskIntoConstraints = false addSubview(label) self.layer.masksToBounds = false self.layer.shadowColor = UIColor.blackColor().CGColor self.layer.shadowOpacity = 1.0 self.layer.shadowRadius = 2.0 // Adding these lines trying to explicitly stop shadow on label... label.layer.shadowOpacity = 0 label.layer.shadowColor = nil ... }