Tôi đã tạo UIView tùy chỉnh trong dự án iOS có bóng đổ. Mục tiêu của tôi là áp dụng cùng một độ dốc cho bóng đổ vì nó nằm trên nền của khung nhìn.UIView Shadow Gradient
Dưới đây là ví dụ về cách bóng màu đồng nhất hiện tại của tôi trông như thế nào.
này được thực hiện thông qua một lớp con của UIView với mã dưới đây:
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
}
Tôi đã được chơi xung quanh với việc tạo ra một lớp gradient thứ hai và che nó vào bóng nhưng đã không có may mắn. Hãy chỉ cho tôi hướng đi đúng!