如何在 swift 中制作不同形状的图像视图

How to make imageview with different shape in swift

我想将正常的 ios 图像视图更改为下面的图像形状(如弧形)

您可以使用它来根据您的要求设计形状,您可以在路径中添加额外的线条以防您需要修改贝塞尔曲线路径。创建自定义 UIImageView class 并将情节提要中的图像视图子 class 到您的自定义 class.

import UIKit

class customImageView: UIImageView {


    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    //    override func drawRect(rect: CGRect)
    //    {
    //
    //
    //    }


    override func setNeedsLayout() {
        let path = UIBezierPath()
        path.moveToPoint(CGPoint(x: self.frame.size.width/2, y: self.frame.size.height))
        path.addLineToPoint(CGPoint(x: self.frame.size.width, y: self.frame.size.height/2))
        path.addLineToPoint(CGPoint(x: self.frame.size.width/2, y: 0))
        path.addArcWithCenter(CGPoint(x: self.frame.size.width/2, y: self.frame.size.height/2), radius: self.frame.size.width/2, startAngle:-CGFloat(M_PI_2), endAngle: CGFloat(M_PI_2), clockwise: false)

        path.moveToPoint(CGPoint(x: self.frame.size.width/2, y: self.frame.size.height))
        path.closePath()
        UIColor.redColor().setFill()
        path.stroke()
        path.bezierPathByReversingPath()
        let shapeLayer = CAShapeLayer()
        shapeLayer.frame = self.bounds
        shapeLayer.path = path.CGPath
        shapeLayer.fillColor = UIColor.redColor().CGColor
        self.layer.mask = shapeLayer;
        self.layer.masksToBounds = true;
    }

}

如果你想通过代码添加图片,请像这样使用它

 func shapeImage()
    {
        let customImgView = customImageView()
        customImgView.image = UIImage(named: "Image")
        customImgView.frame = CGRectMake(0, 0, 250, 250)

        self.view.addSubview(customImgView)
    }

左边是实际图片,右边是在模拟器中按照你的要求整形后的图片