拐角半径仅适用于视图的左上角和左下角

时间:2016-09-10 12:42:04

标签: ios swift uiview constraints cornerradius

我只需要在视图的左上角和左下角转角,所以我尝试了这个:

symbol

并且效果非常好,但在我设置了约束(尾随,前导,顶部和按钮 - 我需要一个响应视图)之后,只有topLeft角是圆角而不是另一角。我怎么能解决它?

4 个答案:

答案 0 :(得分:4)

从iOS 11和Swift 4开始,您可以使用maskedCorners:

let myView = UIView()

myView.layer.cornerRadius = 15
myView.clipsToBounds = true

// Top Left Corner: .layerMinXMinYCorner
// Top Right Corner: .layerMaxXMinYCorner
// Bottom Left Corner: .layerMinXMaxYCorner
// Bottom Right Corner: .layerMaxXMaxYCorner
myView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMinXMaxYCorner]

答案 1 :(得分:2)

尝试这个

 let path = UIBezierPath(roundedRect:viewToRound.bounds, byRoundingCorners:[.TopLeftt, .BottomLeft], cornerRadii: CGSizeMake(20, 20))
    let maskLayer = CAShapeLayer()
    maskLayer.path = path.CGPath
    view.layer.mask = maskLayer

答案 2 :(得分:2)

一种简单的方法是设置单元格内容视图的角半径,然后防止内容的右侧角被舍入,您可以将它们约束为内容视图的x尾随空格(其中x是你的角半径)。这确实需要您调整布局以考虑单元格右侧的额外填充。

答案 3 :(得分:-1)

尝试使用

view?.layer.cornerRadius = 15 

insted of

rectShape.path = UIBezierPath(roundedRect: (view?.bounds)!, byRoundingCorners: [.topRight, .topLeft], cornerRadii: CGSize(width: 20, height: 20)).cgPath