如何将CGImage集中在CALayer上?

时间:2017-10-30 07:20:04

标签: swift calayer cgimage

我试图将UIImage CGImage设为layer个内容,然后将layer添加到view 1}}' s layer 它应该是黄色视图中心的五颗星。这就是我想要的。
但似乎恒星的中心与origin的{​​{1}}一致。 我该怎么做才能纠正它?

view

enter image description here 如果您想测试,这里有星星图像。 enter image description here

2 个答案:

答案 0 :(得分:4)

baseLayer没有定义的框架,因此baseLayer.contentsGravity = kCAGravityCenter可以正常工作,但它仍然会在底部(0,0)。

有两种可能的解决方案:

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

baseLayer.frame = rect.frame

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

baseLayer.position = rect.center

答案 1 :(得分:2)

要将stars image放在CALayer的中心,请提供图层的frame,即

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

对于任何类型的CALayer,您需要明确定义其frame