Я пытаюсь изменить градиентный фон после изменения ширины.
Сначала я настраиваю раскадровку.Затем я применяю ограничение для ширины.
в контроллере, я могу все изменить нормально - ожидать .setGradientBackground.
Применяет только градиент к исходным настройкам ширины раскадровки.
Вот код контроллера представления:
import UIKit
class _textVC: UIViewController {
@IBOutlet weak var test: UIView!
@IBOutlet weak var testWidth: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
let c1 = UIColor.green
let c2 = UIColor.white
testWidth.constant = UIScreen.main.bounds.size.width * 0.8
test.layer.cornerRadius = 10;
test.setGradientBackground(colorOne: c1, colorTwo: c2)
}
}
Я получил эту функцию с YouTube Шона Аллена, но я пробовал другие функции с тем же эффектом.
func setGradientBackground(colorOne: UIColor, colorTwo: UIColor) {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = bounds
gradientLayer.colors = [colorOne.cgColor, colorTwo.cgColor]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.startPoint = CGPoint(x: 1.0, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 0.0)
layer.insertSublayer(gradientLayer, at: 0)
}
спасибо.