저는 iPhone 게임을 만들고 UIView
개체를 사용하여 스프라이트를 그립니다. 대부분의 경우 성능에 문제가 없습니다. 그러나 화면에 약 15-20 개의 객체가 있으면 (그 중 5 명이 움직일 수도 있습니다.) 게임은 특히 iPhone 3G에서 상당히 느려집니다. 프레임 속도는 초당 단일 프레임만큼 떨어질 수 있습니다.성능 문제가 발생하기 전에 iOS에서 동시에 얼마나 많은 UIView를 표시 할 수 있습니까?
이것은 단지 UIView
개체의 제한 사항입니까, 아니면 iOS가이 많은 UIView
개체를 동시에 화면에서 처리 할 수 있어야합니까?
문제를 분리하기 위해, 나는 매우 간단한 그림 그리기를 만들었습니다 - 빨간색 사각형을 그립니다. drawRect
은보기 당 한 번만 호출됩니다. 뷰 계층 구조는 매우 간단하고 얕습니다. 모든 프레임에 UIView
위치를 업데이트하려면 CADisplayLink
을 사용하고 있습니다.
그 밖의 경우는 거의 없으므로이 번호의 UIView
개체를 사용하여 다른 사람이 성공했는지 알고 싶습니다.
저는이 시점에서 드로잉 시스템을 변경하기위한 대규모 점검을 피하기 위해 노력하고 있습니다. =/ UIView 애니메이션을 사용하려고했지만 도움이되는 것처럼 보였습니다.하지만 중반 애니메이션을 중단하고 보간 된 속성 값에 액세스 할 수 없다는 등의 어려운 제한 사항이있었습니다. –
하지만 animationFromCurrentState를 YES로 설정할 수 있으며 이전 상태 인 –
에서 새 애니메이션을 계속 실행하지만 UIView를 터치하고 애니메이션이 진행되는 동안 응답 할 수 있어야합니다. UIView의 애니메이션 중에는 현재 애니메이션이 적용된 위치에서 응답하지 않으며 최종 도착 위치에서 터치 이벤트에 응답합니다. –