2016-11-09 107 views
6

我想为Swift -3中的视图设置不同的角半径,我可以将每个角的半径设置为相同的值,就像下面的帖子中提到的那样,how to set cornerRadius for only top-left and top-right corner of a UIView?Swift 3每个角的不同角cornerRadius Swift 3 - iOS

有没有一种方法可以设置以下格式的圆角半径? 半径左上:18 半径右上:18 半径右下:3个 半径左下:18

+0

看到这样的回答:http://stackoverflow.com/questions/10316902/rounded-corners-only-on-top-of-a-uiview/40222533#40222533 –

回答

20

您可以设置默认layer.cornerRadius到最小的值,然后将图层蒙版的边界设置为更大的价值。

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

作品一样expected.Thanks很多。 –