Utworzyłem niestandardowy UIView w moim projekcie iOS, który ma cień. Moim celem jest zastosowanie tego samego gradientu do cienia, jaki jest na tle widoku.UIView Shadow Gradient
Poniżej znajduje się przykład tego, jak wyglądają moje obecne cienie stałego koloru.
Odbywa się to poprzez podklasy UIView z poniższym kodzie:
override func layoutSubviews() {
let gradientLayer = layer as! CAGradientLayer
gradientLayer.colors = [topColor.cgColor, bottomColor.cgColor]
gradientLayer.startPoint = CGPoint(x: startPointX, y: startPointY)
gradientLayer.endPoint = CGPoint(x: endPointX, y: endPointY)
layer.cornerRadius = cornerRadius
layer.shadowColor = shadowColor.cgColor
layer.shadowOffset = CGSize(width: shadowX, height: shadowY)
layer.shadowRadius = shadowBlur
layer.shadowOpacity = 1
let inset: CGFloat = bounds.width * 0.05
layer.shadowPath = UIBezierPath(roundedRect: bounds.insetBy(dx: inset, dy: 0.0), cornerRadius: cornerRadius).cgPath
}
I zostały gry z tworząc drugą warstwę gradientu i maskowanie go do cienia, ale nie miał szczęścia. Proszę wskazać mi właściwy kierunek!