拐角半径仅在特定拐角处

时间:2018-08-05 21:07:09

标签: swift4 rounded-corners

我在Swift 4中工作,我试图制作一个仅将四个角中的两个圆角的按钮(对于某些按钮,右上角和右按钮,以及对于某些左上角和左下角)。

我搜索了很多东西,发现的是:ViewGroup.LayoutParams layoutParams =v.itemView.getLayoutParams(); layoutParams.width= ViewGroup.LayoutParams.MATCH_PARENT; layoutParams.height= 200; v.itemView.setLayoutParams(layoutParams); 。它可以完美工作,但同时又可以绕过所有角落。

有没有办法绕过一个特定的角落? 谢谢!

2 个答案:

答案 0 :(得分:2)

在iOS 11及更高版本中可用:

myButton.layer.maskedCorners = [.layerMaxXMaxYCorner]  // or some other corner(s)

答案 1 :(得分:0)

尝试这个

extension UIView {

    func roundCorners(_ corners: UIRectCorner, radius: CGFloat) {
         let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
         let mask = CAShapeLayer()
         mask.path = path.cgPath
         self.layer.mask = mask
    }

}

view.roundCorners([.topLeft, .bottomRight], radius: 10)