在UIImageView中的Image后面插入CAShapeLayer

时间:2017-09-12 21:09:53

标签: swift swift3 uiimageview uiimage cashapelayer

正如标题所说。我有一个UIImageView,我将CAShapeLayers插入到View中。问题是我不知道如何将它们插入UIImageView的图像后面。任何建议都将非常感谢,谢谢。

1 个答案:

答案 0 :(得分:4)

你可以尝试做一些图层重新排序,但你可能会被UIImageView自己的内部代码挫败。我的建议是创建一个容器视图并在那里添加子图层,然后将图像视图添加为子视图(基本上也将它添加为子图层)。只要图像具有透明度且UIImageView不是不透明的,它就可以工作。 这段代码在操场上为我工作:

let container = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let imageView = UIImageView(frame: container.bounds)
imageView.image = UIImage(named: "duck.png")
imageView.isOpaque = false

let shape = CAShapeLayer()
shape.path = UIBezierPath(roundedRect: container.bounds, cornerRadius: 2).cgPath
shape.strokeColor = UIColor.black.cgColor
shape.lineWidth = 10
shape.fillColor = UIColor.blue.cgColor
shape.borderColor = UIColor.black.cgColor
container.layer.addSublayer(shape)
container.addSubview(imageView)
祝你好运!