正在玩CAEmitterLayer
并发现了一些非常奇怪的东西。
我在左下角设置了CAEmitterLayer
,位于45度(指向右上角)并试图向右上角射出一些箭头。
除了通过单元格的content
属性设置的图像外,一切正常。
以下是iOS 7设备上的原始图片:
在iOS 6上运行时,它会变成这样:
有没有人经历过这个,你知道为什么会这样吗?有两组图像并检查设备是iOS 6还是iOS 7并相应地设置图像对我来说不是问题,但我的好奇心促使我找出原因。提前致谢。
我正在使用Xcode 5。
答案 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/