let radius = self.bounds.width / 2
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
我应用了上面的代码 但这会产生一个奇怪的形状。
我不知道为什么以及如何解决它;;
答案 0 :(得分:3)
如果宽度和高度相等,则此代码可以正常工作,将2.5更改为2
let radius = self.bounds.width / 2
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
答案 1 :(得分:0)
要使UIImageView
绕圈,您需要确保UIImageView
的高度和宽度应该相同。
使用2除数代替2.5:
let radius = self.bounds.width / 2
答案 2 :(得分:0)
imgView.layer.borderWidth = 1
imgView.layer.masksToBounds = false
imgView.layer.borderColor = UIcolor.black.cgColor
imgView.layer.cornerRadius = self.frame.height/2
imgView.clipsToBounds = true
self.view.layoutIfNeeded()
尝试使用此代码,或者将您的代码完美化,只需将self.view.layoutIfNeeded()
放入您的代码中
答案 3 :(得分:0)
如果要做出完美的圆形,则必须方形。
如果您的视图具有宽高比,则在为视图加载所有约束之后应用角半径。
为此,您可以将半径视图应用于viewDidAppear
方法。
或viewDidLayoutSubviews
方法。
或使用延迟应用半径。
更新
func delay(_ seconds: Double, completion: @escaping () -> ()) {
DispatchQueue.main.asyncAfter(deadline: .now() + seconds) {
completion()
}
}
答案 4 :(得分:-1)
确保图像的高度和宽度相同
override func viewDidLayoutSubviews() {
let radius = yourImageOutlet.bounds.width / 2
yourImageOutlet.layer.cornerRadius = radius
yourImageOutlet.layer.masksToBounds = true
}