Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amirhanov/19839bbcc05ff6516e6e3560031e9a32 to your computer and use it in GitHub Desktop.
Save amirhanov/19839bbcc05ff6516e6e3560031e9a32 to your computer and use it in GitHub Desktop.
Как создать градиент с помощью CAGradientLayer и применить его к UIView.
Всем привет!
Сегодня мы научимся создавать градиент и применять его к UIView. Приступим!
1. Создаем проект. На Main.storyboard создаем UIView и задаем ей Constraint с помощью Auto Layout
2. Открываем редактор кода и создаем связь между UIView и кодом с помощью @IBOutlet (имя задаем любое, например myView)
3. Открывает файл ViewController со связью и переходим к методу viewDidLoad.
4. Внутри метода:
4.1. Создаем слой градиента с помощью CAGradientLayer. CAGradientLayer - это слой, который рисует цветовой градиент над цветом фона, заполняя форму слоя:
let gradientView = CAGradientLayer()
4.2. Так как мы создаем градиент, то ниже создаем два цвета и не забываем в конце cgColor:
let colorTop = UIColor.black.cgColor
let colorBottom = UIColor.green.cgColor
4.2. С помощью locations указываем местоположение цветом. Locations - это необязательный массив объектов, определяющий местоположение каждого цвета внутри градиентна:
gradientView.locations = [0, 1]
4.3. С помощью colors указываем цвета, которые мы создали выше:
gradientView.colors = [colorTop, colorBottom]
4.4. Задаем размеры. В примере размер градиента соответствует размеру UIView (myView), которую мы создали в самом начале:
gradientView.frame = self.view.bounds
4.5. В конце остается только применить к созданной UIView (myView) слой градиента с помощью insertSublayer. insertSublayer - вставляет указанный слой в список подслоев по указанному индексу, в нашему случае индексу равному 0.
self.myView.layer.insertSublayer(gradientView, at: 0)
5. Нажимаем Command + R или Play для запуска приложения и наслаждаемся градиентом.
Благодарю за внимание!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment