iOS: propagación de sombra en UILabel

Quiero boost la propagación de una sombra en mi UILabel, pero no puedo encontrar la propiedad para hacerlo. Agregué una foto a continuación para ilustrar el problema.

Un ejemplo de la sombra de etiqueta deseada y la actual.

La label superior es el efecto deseado que soy capaz de crear en Photoshop. La label inferior ilustra las properties que pude encontrar en iOS. Aquí está el código que usé para la label inferior.

let bottomLabel = UILabel(frame: CGRectMake(0, 0, maxWidth, 18)) bottomLabel.backgroundColor = UIColor.clearColor() bottomLabel.textColor = UIColor.whiteColor() bottomLabel.font = UIFont.boldSystemFontOfSize(16) bottomLabel.text = title bottomLabel.textAlignment = .Center bottomLabel.numberOfLines = 1 bottomLabel.layer.shadowOffset = CGSize(width: 0, height: 0) bottomLabel.layer.shadowOpacity = 1 bottomLabel.layer.shadowRadius = 2 

Encontré una sugerencia para usar una segunda label como una sombra, pero esto no dio el resultado deseado. Aquí está el código de esa label.

 let bottomLabelShadow = UILabel(frame: CGRectMake(0, 1, maxWidth, 18)) bottomLabelShadow.backgroundColor = UIColor.clearColor() bottomLabelShadow.textColor = UIColor.blackColor() bottomLabelShadow.font = UIFont.boldSystemFontOfSize(16) bottomLabelShadow.text = title bottomLabelShadow.textAlignment = .Center bottomLabelShadow.numberOfLines = 1 bottomLabelShadow.layer.shadowOffset = CGSize(width: 0, height: 0) bottomLabelShadow.layer.shadowOpacity = 1 bottomLabelShadow.layer.shadowRadius = 2 

Solutions Collecting From Web of "iOS: propagación de sombra en UILabel"

Parece que funciona para mí en un patio de recreo. Solo necesita boost el radio de sombra para que aparezca como lo desee.

Este es el código exacto del juego que utilicé

 let view = UIView(frame: CGRectMake(0,0,100,20)) view.backgroundColor = UIColor.yellowColor() let bottomLabel = UILabel(frame: CGRectMake(0, 0, 100, 20)) bottomLabel.backgroundColor = UIColor.clearColor() bottomLabel.textColor = UIColor.whiteColor() bottomLabel.font = UIFont.boldSystemFontOfSize(18) bottomLabel.text = "Testing" bottomLabel.textAlignment = .Center bottomLabel.numberOfLines = 1 bottomLabel.layer.shadowOffset = CGSize(width: 0, height: 0) bottomLabel.layer.shadowOpacity = 1 bottomLabel.layer.shadowRadius = 6 view.addSubview(bottomLabel) 

O si lo está utilizando en un background de vista borroso, podría usar la vitalidad para lograr un efecto de aspecto mejor.

introduzca la descripción de la imagen aquí

 //Try This! Hope this helps!! // Create a string let myString = "Shadow" // Create a shadow let myShadow = NSShadow() myShadow.shadowBlurRadius = 3 myShadow.shadowOffset = CGSize(width: 3, height: 3) myShadow.shadowColor = UIColor.gray // Create an attribute from the shadow let myAttribute = [ NSShadowAttributeName: myShadow ] // Add the attribute to the string let myAttrString = NSAttributedString(string: myString, attributes: myAttribute) // set the attributed text on a label myLabel.attributedText = myAttrString 

La respuesta de Rikola como Swift 3:

 import UIKit let view = UIView(frame: CGRect.init(x: 0, y: 0, width: 100, height: 20)) view.backgroundColor = UIColor.yellow let bottomLabel = UILabel(frame: CGRect.init(x: 0, y: 0, width: 100, height: 20)) bottomLabel.backgroundColor = UIColor.clear bottomLabel.textColor = UIColor.white bottomLabel.font = UIFont.boldSystemFont(ofSize: 18) bottomLabel.text = "Testing" bottomLabel.textAlignment = .center bottomLabel.numberOfLines = 1 bottomLabel.layer.shadowOffset = CGSize(width: 0, height: 0) bottomLabel.layer.shadowOpacity = 1 bottomLabel.layer.shadowRadius = 6 view.addSubview(bottomLabel) 

Presione el pequeño "ojo" cuando hoover sobre la vista view.addSubview(bottomLabel) imprima en la barra derecha, para una representación visual de la label.