如何在CALayer上居中CGImage?

JsW*_*JsW 1 calayer cgimage swift

我试图设置UIImageCGImage作为layer的内容,然后添加layerviewlayer
黄色视图的中心应该是五颗星。那就是我想要的。
不过好像星星的中心与对齐originview。我该怎么做才能纠正它?

func putOnStars() {
    let rect = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
    rect.backgroundColor = .yellow
    view.addSubview(rect)

    let baseLayer = CALayer()
    baseLayer.contents = UIImage(named: "stars")?.cgImage
    baseLayer.contentsGravity = kCAGravityCenter
    rect.layer.addSublayer(baseLayer)

}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 如果您要测试,这是为您提供的星图。 在此处输入图片说明

Cya*_*Lee 5

baseLayer没有定义的框架,因此baseLayer.contentsGravity = kCAGravityCenter可以正常工作,但仍然位于位置(0,0)。

有两种可能的解决方案:

1:制作一个baseLayer与相同的画框rect。实现此代码:

baseLayer.frame = rect.frame
Run Code Online (Sandbox Code Playgroud)

2:将的位置设置baseLayer为的中心rect。实现此代码:

baseLayer.position = rect.center
Run Code Online (Sandbox Code Playgroud)