Решение Simple Swift 3.2 / 4, основанное на ответе Ade без каких-либо дополнительных подсмотров, подклассификации или дополнительного скриптинга:
extension UIView {
func addShadow(offset: CGSize, color: UIColor, radius: CGFloat, opacity: Float) {
layer.masksToBounds = false
layer.shadowOffset = offset
layer.shadowColor = color.cgColor
layer.shadowRadius = radius
layer.shadowOpacity = opacity
let backgroundCGColor = backgroundColor?.cgColor
backgroundColor = nil
layer.backgroundColor = backgroundCGColor
}
}
Обратите внимание, что вы должны настроить свое представление с помощью угла радиус и другие свойства перед вызовом addShadow
.
Вызвать это прямо из viewDidLoad
следующим образом:
btnBottom.addShadow(offset: CGSize.init(width: 0, height: 3), color: UIColor.black, radius: 2.0, opacity: 0.35)
Конечный результат:
Супер легко и просто!