#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)
}
}