So fügen Sie einem kreisförmigen Bild einen Rahmen mit der Maske @ hin
Dies ist mein Versuch:
func round() {
let width = bounds.width < bounds.height ? bounds.width : bounds.height
let mask = CAShapeLayer()
mask.path = UIBezierPath(ovalInRect: CGRectMake(bounds.midX - width / 2, bounds.midY - width / 2, width, width)).CGPath
self.layer.mask = mask
// add border
let frameLayer = CAShapeLayer()
frameLayer.path = mask.path
frameLayer.lineWidth = 4.0
frameLayer.strokeColor = UIColor.whiteColor().CGColor
frameLayer.fillColor = nil
self.layer.addSublayer(frameLayer)
}
Es funktioniert auf dem iPhone 6 Simulator (Storyboard hat eine Größe von 4,7), aber auf den 5s und 6+ sieht es komisch aus:
Ist dies ein Problem mit dem automatischen Layout? Ohne den Rahmen funktioniert das automatische Layout korrekt. Ich arbeite zum ersten Mal mit Masken und bin mir nicht sicher, ob das, was ich getan habe, richtig ist.
round
-Funktion wird in @ aufgerufviewDidLayoutSubviews
.
Irgendwelche Gedanken?