为什么UIImageview不是完美的圆圈?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么UIImageview不是完美的圆圈?相关的知识,希望对你有一定的参考价值。

let radius = self.bounds.width / 2
self.layer.cornerRadius = radius
self.layer.masksToBounds = true

我应用了上面的代码但它创造了一个奇怪的形状。

enter image description here

我不知道为什么以及如何解决它。

答案

如果想要完美的圆形视图必须是正方形。

如果您的视图具有宽高比,则在为视图加载所有约束后应用角半径。

为此,您可以将半径视图应用于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不是完美的圆圈?的主要内容,如果未能解决你的问题,请参考以下文章

如何使uiimageview圆圈。?

在 UIImageView 上画一个简单的圆圈

在 UIImageView IOS 上绘制圆圈的最佳方法

在 Swift 中将 ui Image 制作成完美的圆圈

UIPageControl 不与 IOS7 中的 UIImageView 一起使用

在 UIImageView 的图像上方绘制贝塞尔曲线