Неправильные каталоги активов Цвета для тени - PullRequest
0 голосов
/ 19 января 2020

Когда я использую именованный цвет внутри расширения UIViewController (как показано ниже), fillColor всегда получает значение цвета, соответствующее системной теме (например: Dark), а не переопределенное (например: Light).

extension UIViewController {

    func dropRoundedShadow(shadowColor: UIColor, opacity: Float = 0.5, offSet: CGSize, radius: CGFloat = 5, scale: Bool = true) {

    let shadowLayerName = "Shadow"

    let shadowLayer = CAShapeLayer()
    shadowLayer.name = shadowLayerName
    shadowLayer.path = UIBezierPath(roundedRect: bounds, cornerRadius: radius).cgPath
    // This line doesn't get the appropriate color value
    shadowLayer.fillColor = UIColor(named: "app_background")!.cgColor
    shadowLayer.shadowColor = shadowColor.cgColor
    shadowLayer.shadowPath = shadowLayer.path
    shadowLayer.shadowOffset = offSet
    shadowLayer.shadowOpacity = opacity
    shadowLayer.shadowRadius = radius

    if let oldShadowLayer = layer.sublayers?[0],
        oldShadowLayer is CAShapeLayer,
        oldShadowLayer.name == shadowLayerName {

        layer.sublayers?.remove(at: 0)

    }

    layer.insertSublayer(shadowLayer, at: 0)

    } 
}

Несмотря на то, что он работает нормально, когда я проверяю его вручную и назначаю значение цвета, как показано ниже,

   if #available(iOS 12.0, *) {
        if self.traitCollection.userInterfaceStyle == .dark {

            shadowLayer.fillColor = UIColor.black.cgColor
        } else {
            shadowLayer.fillColor = UIColor.white.cgColor
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...