2009-04-09 3 views
4

iPhone 화면에서 간단한 애니메이션을 사용하는 소형 비행기 이미지 (50x50 픽셀) 약 20 개를 사용합니다. UIImageView입니다. 애니메이션은 타이머 간격에 UIImageView 중심 속성을 이동하여 수행됩니다. 타이머가 해고 중심의 속성을 설정하는 하나의 NSTimer 및 루프 (20 개) UIImageView의를 만듭니다NSTimer는 비쌉니까?

[NSTimer scheduledTimerWithTimeInterval:0.01 
           target:self 
           selector:@selector(timerFired:) 
           userInfo:nil 
           repeats:YES] 

가장 좋은 방법은 무엇입니까? 또는 UIImageView 개 개체 당 NSTimer 개를 생성해야합니까? NSTimer 리소스가 비쌉니까?

+0

UIImageView에서 파생 된 PlaneView 객체를 생성하고 있습니다. 타이머는 하위 뷰로 PlaneView가있는 ViewController 내에서 대신 각 PlaneView 객체 내에서 실행됩니다. 나는 아직도 실험 중이다 ...--) –

답변

4

는 나는 그 리소스를 많이 생각하지 않지만, 상식 1 개 타이머를 사용하여 당신의 타이머가 보인다, 초당 100 번 화재로 설정처럼보다 나은 20

이 보이는 아마 것을 지시 할 것 같다 과도한 비트. 타이머가 작동 할 때마다 각 스프라이트에 애니메이션 효과를 적용합니까? 대신 초당 20 ~ 30 번 시도해 볼 수도 있습니다 (또는 그보다 더 적을 수도 있습니다).

내장 된 뷰 애니메이션 기능을 살펴볼 수도 있습니다. 당신이하고있는 일을 위해 아마 잘 작동 할 것 같습니다.

+0

속도면에서 Objective-C 오버 헤드가 상당히 비쌀 수 있다고 상상할 수있다. –

+0

발사율 관련 : LCD는 일반적으로 60Hz에서 새로 고침이되므로 실제로는 애니메이션보다 더 자주 애니메이션을 시도하는 것이 과도합니다. –

2

두 가지 방법 모두 시도해 볼 수 있으며 Xcode와 함께 제공되는 프로파일 링 도구를 사용하여 리소스 사용을 측정 할 수 있습니다.

관련 문제