Ich kämpfe um die Ansicht, die nur oberen Ecken und Schatten um sie gerundet hätte. Die gesamte Ansicht sollte unten im Superview maskiert werden, um zu verhindern, dass sich der Schatten nach der Teilansicht überlappt (Schattenversatz sollte (0, 0) sein).UIView mit Schatten, abgerundete nur obere Ecken und maskierte untere Kante
Wenn ich:
// Adding shadow
let contentSubviewLayer = contentSubview.layer
contentSubviewLayer.masksToBounds = false
contentSubviewLayer.shadowOpacity = 0.3
contentSubviewLayer.shadowRadius = 2.5
contentSubviewLayer.shadowOffset = CGSizeMake(0, 0)
contentSubviewLayer.cornerRadius = 5.0
contentSubviewLayer.shadowPath = UIBezierPath(rect: contentSubview.bounds).CGPath
self.layer.masksToBounds = true
Aber nach der Unterkante Zugabe Maskierung:
// Adding maskView to round only top corners
let maskLayer = CAShapeLayer()
maskLayer.frame = self.contentSubview.bounds
let roundedPath = UIBezierPath(roundedRect: maskLayer.bounds, byRoundingCorners: [UIRectCorner.TopLeft, UIRectCorner.TopRight], cornerRadii: CGSizeMake(CORNER_RADIUS, CORNER_RADIUS))
maskLayer.fillColor = UIColor.whiteColor().CGColor
maskLayer.backgroundColor = UIColor.clearColor().CGColor
maskLayer.path = roundedPath.CGPath
contentSubview.layer.mask = maskLayer
Der gewünschte Effekt sollte die Verbindung der beiden oben sein und so etwas wie dies mit Schatten um den linken, oberen und rechten Rand ähneln sollte:
Bitte um Hilfe! Vielen Dank im Voraus.
können Sie einfach eine andere Ansicht der gleichen Hintergrundfarbe oben auf Ihrem unteren Teil setzen, um den unerwünschten Teil zu bedecken? –
Nein, weil es ein Tabellenansichtsabschnitt sein wird. – Kaktusiarz