2016-06-23 8 views
0

umrunde Ich möchte nur die beiden unteren Ecken meines Bildes runden. Ich fand viele Beispiele in Objective-C und fast nichts mit Swift.Wie man nur einige Ecken eines Bildes mit Swift

Das ist, was ich gefunden, aber es gibt mir eine Fehlermeldung:

let rectShape = CAShapeLayer() 

     rectShape.bounds = self.image.frame 
     rectShape.position = self.image.center 
     rectShape.path = UIBezierPath(roundedRect: self.image.bounds,  byRoundingCorners: .BottomLeft | .BottomRight, cornerRadii: CGSize(width: 20, height: 20)).CGPath 

     self.image.layer.backgroundColor = UIColor.greenColor().CGColor 

     self.image.layer.mask = rectShape 

Der Fehler, den ich mit rectShape.path ist in der Linie erhalten und sagt mir, dass

No '|' candidates produce the expected contextual result type 'UIRectCorner' 

Antwort

3

In swift wir die Art und Weise verändert setze solche Dinge. In Ziel c war es in Ordnung, ein | zu schreiben zur Trennung von Optionen, aber in schnellen müssen Sie es wie ein Array setzen:

let rectShape = CAShapeLayer() 

    rectShape.bounds = self.image.frame 
    rectShape.position = self.image.center 
    rectShape.path = UIBezierPath(roundedRect: self.image.bounds,  byRoundingCorners: [.BottomLeft, .BottomRight], cornerRadii: CGSize(width: 20, height: 20)).CGPath 

    self.image.layer.backgroundColor = UIColor.greenColor().CGColor 

    self.image.layer.mask = rectShape 
+0

Dank i getestet und es funktioniert! Danke für die schnelle Antwort! –

+0

Das hat perfekt funktioniert! – user7097242

+0

Stellen Sie sicher, diesen Code zu 'viewDidLayoutSubviews()' 'Ich habe versucht, dies in ViewDidLoad und gab mir Probleme. – user7097242

0
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [.TopLeft, .BottomLeft], cornerRadii: CGSize(width: 3, height: 3)) 
+0

Das würde funktionieren, aber bitte fügen Sie erklärenden Text hinzu, um zu erklären, warum es funktioniert, anderen zu erlauben, Ihre Antwort zu verstehen. – AlBlue

Verwandte Themen