跳到主要内容

如何UIImageView添加圆角?

参考答案:

在Swift中,你可以使用UIBezierPathCAShapeLayer来为UIImageView添加圆角。以下是一个简单的示例:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        self.addRoundedCornersToImageView(imageView, corners: [.topLeft, .topRight], radius: 20)
    }
    
    func addRoundedCornersToImageView(_ imageView: UIImageView, corners: UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: imageView.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        
        let maskLayer = CAShapeLayer()
        maskLayer.path = path.cgPath
        imageView.layer.mask = maskLayer
    }
}

在这个示例中,addRoundedCornersToImageView函数接受一个UIImageView,一个UIRectCorner枚举(表示你希望添加圆角的角),以及一个CGFloat(表示圆角的半径)。函数创建一个UIBezierPath,该路径描述了一个矩形,其中指定的角是圆角的。然后,它创建一个CAShapeLayer,并将其路径设置为该路径。最后,它将该图层设置为图像视图的遮罩图层,从而实现圆角效果。

注意,这个方法会影响UIImageView的边界(bounds),因此如果你的UIImageView有背景色或边框,它们也会被裁剪成圆角形状。如果你只想裁剪图像本身,而不是整个视图,你可能需要创建一个新的视图或图层来包含UIImageView,并将遮罩应用于那个视图或图层。