2013-10-15 6 views
2

CAEmitterLayer으로 놀고 있었고 정말 이상한 것을 발견했습니다.iOS : CAEmitter 레이어 및 EmitterCell이 iOS 6에서 이미지를 뒤집습니다.

왼쪽 하단 모서리에 CAEmitterLayer을 설치하고 45도 (오른쪽 상단 모서리를 가리키는 부분)에 배치하고 오른쪽 상단 모서리쪽으로 화살표를 찍으려고했습니다.

셀의 content 속성을 통해 설정 한 이미지를 제외한 모든 것이 작동합니다. 아이폰 OS 6 실행하면

enter image description here

, 그것은 다음과 같이된다 :

enter image description here

는 사람이 경험하고 당신을 가지고 여기에

는 아이폰 OS 7 장치의 원래 이미지입니다 이게 왜 그렇게되는지 알아? 두 세트의 이미지가 있고 기기가 iOS 6 또는 iOS 7인지 확인하고 그에 따라 이미지를 설정하는 것은 문제가되지 않지만 호기심 때문에 왜 이것이 그렇게되는지 알아봐야합니다. 미리 감사드립니다.

나는이 CAEmitterLayer에서 정상적인 동작입니다 엑스 코드 5

답변

1

을 사용하고 있습니다. 다른 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/

+0

다양한 설명과 심지어 솔루션을 제공, 감사합니다 이것은을하는 짧은 코드입니다. – Unheilig