Исчезает цвет пользовательского интерфейса вверху

#ios #iphone #swift #cocoa-touch #uiview

#iOS #iPhone #swift #cocoa-touch #пользовательский интерфейс

Вопрос:

У меня есть базовый UIView , который я создал с помощью Interface Builder ( XIB ).

Я хочу получить этот эффект (на изображении: мой вид над изображением):

Изображение Как я могу сделать UIView так, чтобы цвет фона исчезал вверху?

Спасибо!

Ответ №1:

Что вы имеете в виду, добавляя эффект «градиента» к вашему UIView. Для этого вам нужно добавить CAGradientLayer, вы можете создать пользовательский UIView , подобный этому:

 class CustomView: UIView {
    private let gradientLayer = CAGradientLayer()

    override func awakeFromNib() {
        super.awakeFromNib()

        addGradient()
    }

    override func layoutSubviews() {
        super.layoutSubviews()

        // update gradient
        gradientLayer.frame = self.bounds
    }

    private func addGradient() {
        // declaring colors for your gradient:
        // top color is clear
        let topColor = UIColor.clear.cgColor
        // bottom color is black
        let bottomColor = UIColor.black.cgColor

        gradientLayer.frame = self.frame

        // add colors to the gradientLayer:
        gradientLayer.colors = [topColor, bottomColor]

        // change the startPoint and endPoint to make it appears like it should...
        gradientLayer.startPoint = CGPoint(x: 1.0, y: 0.0)
        gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0)

        // add the gradient to your view (which in my case is gradientView)
        self.layer.insertSublayer(gradientLayer, at: 0)
    }
}