class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let gradientLayer = CAGradientLayer()
gradientLayer.frame = view.bounds
gradientLayer.colors = [
UIColor.purple.cgColor,
UIColor.blue.cgColor,
UIColor.green.cgColor,
UIColor.yellow.cgColor,
UIColor.orange.cgColor,
UIColor.red.cgColor
]
view.layer.insertSublayer(gradientLayer, at: 0)
}
}
☀️ view.background == view.layer.background
과제를 하다가 문득 왼쪽과 오른쪽 모두 배경색을 바꾸는 데 사용할 수 있는데 어떤 차이일까 하는 의문이 들었다. 찾아본 결과 view 의 background 를 지정하는 것은 실제로 해당 view 의 layer 의 background 를 지정하는 것이라고 한다. 직접 print 문으로도 확인해봤는데 어느쪽이든 하나의 값을 변경하면 항상 둘 다 변경된 값으로 업데이트되었다!
gradientLayer.frame = view.bounds
이 부분이 자동으로 업데이트 되지 않으므로 직접 코드를 작성해야 한다.class ViewController: UIViewController {
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
if let gradientLayer = view.layer.sublayers?[0],
gradientLayer.isKind(of: CAGradientLayer.self) == true
{
gradientLayer.frame = view.bounds
}
}
}
iOS Programming: The Big Nerd Ranch Guide 라는 책을 보시고 하시는건가용?