Swift의 iOS 앱의 경우 프로그래밍 방식 제약 조건을 사용하고 UIView()에 CAGradientLayer()를 추가하려고합니다. 아래 코드는 작동하지 않습니다.프로그래밍 방식의 제약 조건을 사용할 때 UIView에 CAGradientLayer를 추가하는 방법
import UIKit
class ViewController: UIViewController {
let animationView: UIView = {
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(animationView)
setupAnimationView()
animationView.addGradientLayer()
}
func setupAnimationView() {
animationView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
animationView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
animationView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
animationView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
}
}
extension UIView {
func addGradientLayer() {
let color1 = UIColor(red: 251/255, green: 55/255, blue: 91/255, alpha: 1.0)
let color2 = UIColor(red: 1.0, green: 70/255, blue: 0, alpha: 1.0)
let gradientLayer = CAGradientLayer()
gradientLayer.name = "gradientLayer"
gradientLayer.frame = self.frame
gradientLayer.colors = [color1.cgColor, color2.cgColor]
self.layer.insertSublayer(gradientLayer, at: 0)
}
}
내가 믿는 오전 데 문제는 내가 프로그램 제약 animationView을 만들고 난 후 시도하고 프레임의 뷰의 프레임이 동일하게 설정하여 그라데이션 레이어를 추가한다는 사실과 관련이 있습니다. 이 코드는 프로그래밍 방식의 제약 조건을 사용하지 않을 때 작동합니다. 내가 누락/잘못하고있는 아이디어?
* class * 키워드 뒤에 콜론을 제거하십시오. – Hamsternik
@Hamsternik이 방금 변경했습니다. – Edward