为什么UIImageview不是完美的圆圈?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么UIImageview不是完美的圆圈?相关的知识,希望对你有一定的参考价值。
let radius = self.bounds.width / 2
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
我应用了上面的代码但它创造了一个奇怪的形状。
我不知道为什么以及如何解决它。
答案
如果想要完美的圆形视图必须是正方形。
如果您的视图具有宽高比,则在为视图加载所有约束后应用角半径。
为此,您可以将半径视图应用于viewDidAppear
方法。或viewDidLayoutSubviews
方法。或使用延迟应用半径。
更新
func delay(_ seconds: Double, completion: @escaping () -> ()) {
DispatchQueue.main.asyncAfter(deadline: .now() + seconds) {
completion()
}
}
另一答案
如果宽度和高度相等,则此代码正常工作,将2.5更改为2
let radius = self.bounds.width / 2
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
另一答案
要制作UIImageView
圈,你需要确保你UIImageView
的高度和宽度应该相同(方形)。
使用除以2而不是2.5:
let radius = self.bounds.width / 2
另一答案
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()
放在你的代码中
另一答案
确保图像高度和宽度相同
override func viewDidLayoutSubviews() {
let radius = yourImageOutlet.bounds.width / 2
yourImageOutlet.layer.cornerRadius = radius
yourImageOutlet.layer.masksToBounds = true
}
以上是关于为什么UIImageview不是完美的圆圈?的主要内容,如果未能解决你的问题,请参考以下文章