Как наложить несколько теней на UILabel?

В iOS можно применить несколько теней к UILabel, используя атрибуты слоя CALayer. CALayer - это объект, который управляет отображением содержимого UIView и позволяет настраивать различные атрибуты, такие как тень.

Для наложения нескольких теней на UILabel нужно выполнить следующие шаги:

  1. Импортируйте библиотеку QuartzCore в файле, в котором вы используете UILabel:
import QuartzCore
  1. Создайте UILabel и установите ему текст и другие свойства, которые вам необходимы:
let label = UILabel(frame: CGRect(x: 50, y: 50, width: 200, height: 50))
label.text = "Пример текста"
label.textAlignment = .center
// Добавьте дополнительные свойства по вашему выбору
  1. Получите слой UILabel, используя свойство layer:
let layer = label.layer
  1. Создайте экземпляр класса CAGradientLayer, который представляет собой градиентный слой, и добавьте его как подслоя в слой UILabel:
let gradientLayer = CAGradientLayer()
gradientLayer.frame = layer.bounds
layer.addSublayer(gradientLayer)
  1. Установите цвета теней в массиве colors свойства gradientLayer:
gradientLayer.colors = [
    UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).cgColor,
    UIColor(red: 0, green: 0, blue: 0, alpha: 0.3).cgColor,
    // Добавьте другие цвета по вашему выбору
]
  1. Установите радиус и смещение теней с помощью свойств shadowRadius и shadowOffset:
gradientLayer.shadowRadius = 10
gradientLayer.shadowOffset = CGSize(width: 5, height: 5)
  1. Настраивайте другие свойства теней по вашему выбору, такие как прозрачность, радиус размытия и т. д.
  1. Не забудьте, что размеры слоя будут актуальными после вызова метода layoutSubviews, поэтому еще раз установите размеры градиентного слоя после того, как UILabel получит окончательный размер:
override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    gradientLayer.frame = layer.bounds
}

Это основы для наложения нескольких теней на UILabel в iOS. Вы можете настроить цвета, радиусы и другие свойства теней по своим потребностям.