斯威夫特
简答:
myView.layer.cornerRadius = 8
myView.layer.masksToBounds = true // optional
补充答案
如果你得到这个答案,你可能已经看到了足够的东西来解决你的问题。我添加这个答案是为了更直观地解释为什么事情会这样做。
如果您以普通的UIView 开头,则它有方角。
let blueView = UIView()
blueView.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
blueView.backgroundColor = UIColor.blueColor()
view.addSubview(blueView)
您可以通过更改视图的layer 的cornerRadius 属性来给它圆角。
blueView.layer.cornerRadius = 8
半径值越大,圆角越圆
blueView.layer.cornerRadius = 25
较小的值会产生较少的圆角。
blueView.layer.cornerRadius = 3
这可能足以解决您的问题。然而,有时一个视图可能有一个超出视图边界的子视图或子层。例如,如果我要添加这样的子视图
let mySubView = UIView()
mySubView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubView.backgroundColor = UIColor.redColor()
blueView.addSubview(mySubView)
或者如果我要添加一个像这样的子层
let mySubLayer = CALayer()
mySubLayer.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubLayer.backgroundColor = UIColor.redColor().CGColor
blueView.layer.addSublayer(mySubLayer)
然后我会结束
现在,如果我不想让事情超出界限,我可以这样做
blueView.clipsToBounds = true
或者这个
blueView.layer.masksToBounds = true
给出这个结果:
clipsToBounds 和 masksToBounds 都是 equivalent。只是第一个与UIView一起使用,第二个与CALayer一起使用。
另见