拐角半径仅在特定拐角处

Posted

技术标签:

【中文标题】拐角半径仅在特定拐角处【英文标题】:Corner radius just in particular corner 【发布时间】:2018-08-05 21:07:09 【问题描述】:

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

我搜索了很多,我发现的只是:myButton.layer.cornerRadius = newCornerRadiusInPixels;。它工作得很好,但它同时圆了所有的角落。

有没有办法只圆一个特定的角落? 谢谢!

【问题讨论】:

***.com/questions/4845211/just-two-rounded-corners/… 【参考方案1】:

适用于 ios 11 及更高版本:

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

【讨论】:

【参考方案2】:

试试这个

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)

【讨论】:

谢谢伙计,它对我不起作用。我完全按照所示使用并将其放置在视图中确实加载了。我错过了什么吗?

以上是关于拐角半径仅在特定拐角处的主要内容,如果未能解决你的问题,请参考以下文章

我的拐角半径仅适用于一个拐角

具有拐角半径和阴影视图的 UIView 不会在拐角处剪辑子视图

每个拐角不同的拐角半径,扩展 TableView 单元格视图

如何使用 CAShaperLayer 设置拐角半径值?

仅将角半径设置为 UIView/UIButton 的特定侧

每个角的不同 CornerRadius 到 Border