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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage