Я пытался создать тень для своего UIView. Я осмотрелся и нашел расширение для класса CALayer из этого поста. https://stackoverflow.com/a/48489506/9188318
До сих пор у меня это работало хорошо, пока я не попытался ввести число, отличное от 0, для спреда.
При спреде 0. Вот результат
И вот результат с использованием спреда 1
И это становится еще хуже с разбросом 5
Проблема, с которой я сталкиваюсь, заключается в том, что у него нет закругленных углов, и я понятия не имею, как это исправить. Вот мой код для UIView, который использует это представление. Расширение, которое используется для создания тени, есть в посте выше.
Код UIView
class FileCalculateOperatorSelectionButton : UIView {
private var isActivated : Bool = false
//Background colors
private var unSelectedBackgroundColor : UIColor = UIColor(red: 178/255, green: 90/255, blue: 253/255, alpha: 1.0)
private var selectedBackgroundColor : UIColor = UIColor.white
override init(frame: CGRect) {
super.init(frame: frame)
self.commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
self.commonInit()
}
private func commonInit() {
self.layer.cornerRadius = self.frame.height/2
self.backgroundColor = self.unSelectedBackgroundColor
let shadowColor = UIColor(red: 0xC8, green: 0xC6, blue: 0xC6)
//Change the spread argument here
self.layer.applySketchShadow(color: .black, alpha: 0.5, x: 0, y: 0, blur: 5, spread: 0)
}
}