CornerRadius 不显示

问题描述

我已经将拐角半径设置为 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

解决方法

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

,
imageView.layer.masksToBounds = true

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...