Ответ 1
Вам нужно иметь дело с ограничениями автоопределения. Этот быстрый код представляет собой то, что вам нужно сделать с помощью метода viewDidLayoutSubviews
:
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton!
let gradientLayer = CAGradientLayer()
override func viewDidLoad() {
super.viewDidLoad()
gradientLayer.colors = [UIColor(white: 1, alpha: 0.3).CGColor,
UIColor(white: 0.5, alpha: 0.3).CGColor]
gradientLayer.frame = button.bounds
gradientLayer.cornerRadius = button.layer.cornerRadius
button.layer.insertSublayer(gradientLayer, atIndex: 0)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
gradientLayer.frame = button.bounds
}
}