UIImage上的形状/面具?

时间:2017-07-11 09:24:32

标签: ios swift uiimageview

我想知道如何在Xcode中实现这一目标?它是个人资料的一部分,因此标题是实际的UIImageView,但是它下面的曲线,不知道如何实现。有什么想法吗?

enter image description here

2 个答案:

答案 0 :(得分:4)

假设灰色区域是由底部灰色矩形构建的,并且在您的弧形顶部另一个矩形,我们可以这样做:

创建一个圆形的UIBezierPath

let path = UIBezierPath(ovalIn:CGRect(x: 0, y: view.bounds.height/2, width: view.bounds.width, height: view.bounds.height)).cgPath

将其应用于顶部矩形。

let overlay = CAShapeLayer()
overlay.path = path
overlay.fillColor = UIColor.gray.cgColor
overlay.shouldRasterize = true
view.layer.addSublayer(overlay)

这将创建一个完美的圆圈,但您可以根据自己的喜好调整CGRect,以获得您想要的形状!

答案 1 :(得分:2)

可以通过提供标题视图UIBezierPath来实现,但如果您不想这样做。

我找到了一种很酷的做法。

你的标题视图包含一个图像(让我们说它是HeaderImage)。

  • 制作该形状的图像(让我们说它是MaskImage)。

    let path = UIImageView.init(image: #imageLiteral(resourceName: "MaskImage"))
    
  • 将此遮罩应用于标题图像。

    HeaderImage.mask = path
    

希望它适合你。

相关问题