我试图将aUIImageCGImage设置为alayer的内容,然后将layer添加到aviewlayer中。
它应该是五颗星在黄色视野的中心。这就是我想要的。
但似乎恒星的中心与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)

}

swift - 如何在CALayer上居中CGImage?-LMLPHP
这是你想测试的星星图像。
swift - 如何在CALayer上居中CGImage?-LMLPHP

最佳答案

baseLayer没有已定义的帧,因此baseLayer.contentsGravity = kCAGravityCenter可以正常工作,但它仍处于潜在状态(0,0)。
有两种可能的解决方案:
1:制作一个baseLayer的框架,该框架与rect相同。实现此代码:

baseLayer.frame = rect.frame

2:将baseLayer的位置设置到rect的中心。实现此代码:
baseLayer.position = rect.center

关于swift - 如何在CALayer上居中CGImage?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47009878/

10-09 13:01