iOS:CAEmitter Layer和EmitterCell在iOS 6上翻转图像

时间:2013-10-15 17:15:45

标签: ios caemitterlayer caemittercell

正在玩CAEmitterLayer并发现了一些非常奇怪的东西。

我在左下角设置了CAEmitterLayer,位于45度(指向右上角)并试图向右上角射出一些箭头。

除了通过单元格的content属性设置的图像外,一切正常。

以下是iOS 7设备上的原始图片:

enter image description here

在iOS 6上运行时,它会变成这样:

enter image description here

有没有人经历过这个,你知道为什么会这样吗?有两组图像并检查设备是iOS 6还是iOS 7并相应地设置图像对我来说不是问题,但我的好奇心促使我找出原因。提前致谢。

我正在使用Xcode 5。

1 个答案:

答案 0 :(得分:1)

这是CAEmitterLayer中的正常行为。它使用与iOS其他部分不同的坐标系。由于它是从MacOS派生的技术,其原点(0,0)位于左下角,而在iOS中,原点位于左上角。当图片被绘制时,它会导致图像翻转。 CAEmitterLayer并非真正用于使用这样的图像,主要用于不需要特定方向的粒子系统。

对此最简单的解决方案是自己翻转图像,这样当CAEmitterLayer再次翻转它时,它会显示为你想要它。这可能在iOS7中发生了变化,因此您必须进行版本检查并应用正确的图像。

如果您愿意,也可以在代码中翻转它。这是一个简短的代码:

UIImage *flippedPicture = [UIImage imageWithCGImage:picture.CGImage scale:1.0 orientation:UIImageOrientationLeftMirrored];

来源:http://www.vigorouscoding.com/2013/02/particle-image-gets-mirrored-by-uikit-particle-system/