2016-10-07 4 views
3

SpriteKit을 사용하는 응용 프로그램이 있습니다. CIFilter가있는 SKEffectNode를 사용하여 간단한 전환을 만들었습니다.이 함수는 일부 함수에 따라 (업데이트 루프 메서드에 내장 된 SpriteKit의) 모든 업데이트에서 필터의 매개 변수를 변경하기 위해 setValue를 적용합니다.iOS 10의 setValue 후에 CIFilter가 업데이트되지 않습니다.

스위프트 버전이 아무 문제가 없지만 iOS 9 및 스위프트 3으로 업그레이드하기 전에 정상적으로 작동했습니다.

이제 마지막 매개 변수 값까지 지속되는 첫 번째 매개 변수 값이있는 프레임을 얻습니다. iOS 9에서 iOS 10으로 바뀐 점은 무엇입니까?

답변

1

나는 타이머 시작 부분에서 shouldEnableEffects를 활성화하고 끝에 비활성화했음을 눈치 챘다. 그리고 이것은 화면에서 관찰 한 필터 값과 일치했다.

setValue를 호출 할 때마다 shouldEnableEffects를 true로 설정하면 문제가 해결되어 모든 업데이트에서 필터가 변경되는 것을 볼 수 있습니다. 성능 또는 최적화 이유로 SpriteKit 또는 iOS 10에서 변경된 사항이 있는지 확인하십시오.

+0

문제가 될 수있는 NSTimer를 사용하는 경우 NSTimer와 화면 업데이트 – Knight0fDragon

+0

@ Knight0fDragon 사이의 적절한 동기화를 보장 할 방법이 없지만 SpriteKit의 내장 업데이트 방법을 사용하고 있습니다. 업데이트 - 렌더링 루프에 있어야합니다. 더 명확하게 질문을 수정하겠습니다. – jyoung

관련 문제