Ich habe eine CAShapeLayer
nur mit abgerundeten Ecken. Was ich möchte, ist einen Schatten am unteren Rand hinzufügen, aber es funktioniert nicht, obwohl der Code offensichtlich richtig aussieht. Es tut es nur um die unteren Ecken, aber ich sehe keinen Schatten.Fügen Sie einen Schatten mit CAShapeLayer hinzu?
let shapeLayer = CAShapeLayer()
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [.bottomLeft, .bottomRight], cornerRadii: CGSize(width: 20, height: 20)).cgPath
shapeLayer.path = path
shapeLayer.shadowColor = UIColor(r: 233, g: 233, b: 233).cgColor
shapeLayer.shadowOffset = CGSize(width: 0.0, height: 2.8)
shapeLayer.shadowOpacity = 1.0
shapeLayer.shadowRadius = 0.0
shapeLayer.shouldRasterize = true
shapeLayer.rasterizationScale = UIScreen.main.scale
layer.rasterizationScale = UIScreen.main.scale
layer.mask = shapeLayer
Dank ! Ich habe eine Idee von dieser Frage. Ich habe lediglich eine Dummy-Hintergrundansicht mit einem Schlagschatten erstellt. und fügen Sie es in die Ansicht ein (mit 'insertSubView'), die die abgerundeten Ecken hatte. –
Wenn ich den Sublayer zu meinem Layer hinzufüge, wird der View komplett schwarz –