2016-11-09 14 views
6

Chcę ustawić inny promień narożnika dla widoku w Swift -3, jestem w stanie ustawić promień dla każdego narożnika na tę samą wartość, jak wymieniona w następującym poście , how to set cornerRadius for only top-left and top-right corner of a UIView?Różne narożaRadius dla każdego rogu Swift 3 - iOS

Czy istnieje sposób, w jaki mogę ustawić promień narożnika w następującym formacie? Promień top-left: 18 Promień top-right: 18 Promień bottom-right: 3 Promień bottom-left: 18

+0

zobaczyć tę odpowiedź: http://stackoverflow.com/questions/10316902/rounded-corners-only-on-top-of-a-uiview/40222533#40222533 –

Odpowiedz

20

Można ustawić domyślną layer.cornerRadius do najmniejszej wartości, a następnie ustawić ramkę maski warstwy do większa wartość.

let demoView = UIView(frame: CGRect(x: 100, y: 200, width: 100, height: 100)) 
demoView.backgroundColor = UIColor.red 
demoView.layer.cornerRadius = 3.0 

let maskPath = UIBezierPath(roundedRect: demoView.bounds, 
          byRoundingCorners: [.topLeft, .topRight, .bottomLeft], 
          cornerRadii: CGSize(width: 18.0, height: 0.0)) 

let maskLayer = CAShapeLayer() 
maskLayer.path = maskPath.cgPath 
demoView.layer.mask = maskLayer 
view.addSubview(demoView) 
+0

działa podobnie jak wiele expected.Thanks . –

Powiązane problemy