Создание тени типа эскиза

Я создал эскизный дизайн с тенями, но когда я попытался реализовать это в Xcode с помощью Swift, я не получил желаемого результата, это то, чего я хочу достичь.

введите здесь описание изображения

Но это то, что я продолжаю получать

введите здесь описание изображения

Вот код, который я использую

extension CALayer {
func applySketchShadow(
    color: UIColor = .black,
    alpha: Float = 0.5,
    x: CGFloat = 0,
    y: CGFloat = 2,
    blur: CGFloat = 4,
    spread: CGFloat = 0)
{
    shadowColor = color.cgColor
    shadowOpacity = alpha
    shadowOffset = CGSize(width: x, height: y)
    shadowRadius = blur / 2.0
    if spread == 0 {
        shadowPath = nil
    } else {
        let dx = -spread
        let rect = bounds.insetBy(dx: dx, dy: dx)
        shadowPath = UIBezierPath(rect: rect).cgPath
    }
}
}

person Sagaya Abdul    schedule 06.05.2018    source источник
comment
Вы взглянули на это: stackoverflow.com/questions/15704163/   -  person Zyntx    schedule 07.05.2018
comment
Возможный дубликат Как контролировать распространение и размытие теней?   -  person Quoc Nguyen    schedule 07.05.2018


Ответы (1)


Вам нужно только сделать, что вы должны увеличить значение y.

Если вы установите значение x и y равным 0,0, тогда будет отображаться окно, похожее на тень. Итак, когда вы увеличиваете значение y, тень будет двигаться вниз. Таким образом, вы не увидите тени с ног на голову, и это выглядит как то, что вам нужно.

Надеюсь, что это поможет вам.

person Khushbu    schedule 07.05.2018