uiimageview底部的Curv视图

Chirag Shah

我需要在视图底部绘制一个带有UIBezierPath的视图,就像这张图片一样。 在此处输入图片说明

我尝试使用此代码,但在图像的一半而不是如图的视图底部绘制椭圆形,这是我的输出和代码

override func draw(_ rect: CGRect) {
    super.draw(rect)

    let shapeLayer = CAShapeLayer(layer: imgCamera.layer)
    shapeLayer.path = self.pathCurvedForView(givenView: imgCamera).cgPath
    shapeLayer.frame = imgCamera.bounds
    shapeLayer.masksToBounds = true
    imgCamera.layer.mask = shapeLayer

}

private func pathCurvedForView(givenView: UIView) ->UIBezierPath
{
    let ovalRect = givenView.frame

    let ovalPath = UIBezierPath()

    ovalPath.addArc(withCenter: CGPoint(x: ovalRect.midX, y: ovalRect.midY), radius: ovalRect.width / 2, startAngle: 0 * CGFloat.pi/180, endAngle: -180 * CGFloat.pi/180, clockwise: true)
    ovalPath.addLine(to: CGPoint(x: ovalRect.midX, y: ovalRect.midY))

    ovalPath.close()

    UIColor.gray.setFill()
    ovalPath.fill()

    return ovalPath
}

在此处输入图片说明

dahiya_boy

代码工作:

    imageView.layer.cornerRadius = imageView.frame.width/2
    imageView.layer.borderWidth = 5
    imageView.layer.borderColor = UIColor.white.cgColor
    let gradientLayer = CAGradientLayer()
    gradientLayer.frame = imageView.bounds
    gradientLayer.colors = [UIColor.clear.cgColor, UIColor.clear.cgColor, UIColor.clear.cgColor, lightBlack.cgColor , lightBlack.cgColor]
    gradientLayer.locations = [NSNumber(value: 0.0), NSNumber(value: 0.5), NSNumber(value: 0.75),NSNumber(value: 0.75), NSNumber(value: 1.0)]
    imageView.layer.addSublayer(gradientLayer)

输出:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章