不显示角半径

Posted

技术标签:

【中文标题】不显示角半径【英文标题】:CornerRadius is not Displayed 【发布时间】:2021-04-25 11:44:05 【问题描述】:

我已将圆角半径设置为 10。但图像视图未显示圆角半径。

    lazy var imageView: UIImageView = 
        let imageView = UIImageView()
        imageView.translatesAutoresizingMaskIntoConstraints = false
        imageView.image = UIImage(named: "sample_image")
        imageView.layer.cornerRadius = 20/2
        imageView.contentMode = .scaleToFill
        imageView.clipsToBounds = true
        return imageView

    ()

我也尝试过使用 imageView.layer.masksToBounds = true,但它也不起作用。

当我如下在图像视图上使用背景颜色时,它完美地显示了带有圆角的视图。

    lazy var imageView: UIImageView = 
        let imageView = UIImageView()
        imageView.translatesAutoresizingMaskIntoConstraints = false
        imageView.backgroundColor = UIColor.init(hexString: "#000000")
        imageView.layer.cornerRadius = 20/2
        imageView.contentMode = .scaleToFill
        imageView.clipsToBounds = true
        return imageView

    ()

我还尝试更改图像的图像、宽度和高度,以检查图像是否太大而无法查看。但它也不起作用。

这就是我调用 imageView 的方式。

       view.addSubview(imageView)

        self.imageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true

        self.imageView.topAnchor.constraint(equalTo: view.topAnchor, constant: imageViewTopMargin).isActive = true

        self.imageView.widthAnchor.constraint(equalToConstant: imageViewWidth).isActive = true

        self.imageView.heightAnchor.constraint(equalToConstant: imageViewHeight).isActive = true

【问题讨论】:

你检查了视图调试器吗? 我已经测试了您的代码,并且运行良好!检查调试层次结构,尝试不同的图像,这一定可以正常工作。 对我来说也很好用:screenshot 【参考方案1】:

您需要将 UIImageView 的contentMode 更改为 center 并将 clipToBound 更改为 true。

【讨论】:

【参考方案2】:
imageView.layer.masksToBounds = true

【讨论】:

不应该clipsToBounds有同样的效果吗?

以上是关于不显示角半径的主要内容,如果未能解决你的问题,请参考以下文章

未显示超级视图子视图 UIView 的角半径

UITextView 的动态角半径

滑动:只在顶部显示带有半径角的图像。

如何为一些子成员设置卡片视图的角半径?

IOS:UIImageView边框白色,半径在4个角显示一条奇怪的暗线

如果设置角半径,则不应用阴影