如果您想让您的UIView显示为圆形,则有几种方法可做到。
如果您事先不知道视图的高度/宽度,则可以简单地在其父视图类中重写layoutSubviews()
函数或在视图控制器中重写func viewDidLayoutSubviews()
函数,并在那里直接设置角半径。
override func layoutSubviews() {
super.layoutSubviews()
label.layer.cornerRadius = label.frame.size.width/2
}
别忘了将UIView的layer的masksToBounds属性设置为true。
为遮罩层指定贝塞尔路径。每当视图改变大小时,都必须更新图层的框架。
如果你正在处理图片,还可以考虑在UIImageView中显示之前对图片本身进行切圆角处理 - 从性能上来看,这可能比之前的选项更快。
let width:CGFloat = UIScreen.main.bounds.width*0.0533
label.frame = CGRect(0,0,width,width)
label.layer.masksToBounds = true
label.layer.cornerRadius = width/2
我发现要使uiview成为圆形,除了.frame.size.height / 2之外,uiview的宽度和高度也应该相等。