2009-12-01 2 views
3

아이폰에 지뢰 찾기 복제품 게임을 만들었습니다. 그리드에서 세포의 내 implementaion이 UIView를 만들고 UIView에 단추를 추가 한 다음 UIView를 UIScrollView에 추가했지만 축소하거나 매끄럽게하지 않는 UIScrollView의 zoomToRect 메서드를 사용하여 확대 할 때마다 축소가 왜곡되었습니다. 어떻게 UIScrollView에서 부드러운 확대/축소를 구현할 수 있습니까?UIScrollView 확대/축소가 원활하지 않습니다.

답변

0

지도 앱에서 패닝 또는 확대/축소를하는 동안 회색 타일이 표시되는 것을 알고 계십니까? 즉, iPhone이 현재 타일을 다운로드 중입니다. 사파리에는 사파리가 웹 페이지 대신 회색 체크 무늬를 긋는 것과 비슷한 효과가 있습니다. 현재 웹 페이지를 렌더링하고 있으므로 잠시만입니다. 이 두 가지 모두 스크롤링이 영역을 표시하기 전에 내용이로드 될 때까지 기다리지 않고 스크롤을 원활하게 할 수 있음을 의미합니다.

몇 가지 아이디어를 보려면 여기 [http://stackoverflow.com/questions/1098234/optimized-image-loading-in-a-uiscrollview]를 시도해 볼 수 있습니다. 올바른 방향의 요점은 스레딩을 사용하는 것입니다. 백그라운드에서보기를로드하면서 그 자리에 회색을 표시합니다.

1

스크롤 또는 확대/축소가 시작될 때 콘텐츠보기를 비트 맵 이미지로 렌더링하고 스크롤/확대/축소가 완료 될 때까지 큰 격자의 단추를 비트 맵으로 바꿔 봅니다. UIScrollViewDelegate 프로토콜은 비트 맵을 언제 바꿔 넣을 지 알기 위해 필요한 정보를 제공해야합니다. 문제의 일부는 콘텐츠보기가 렌더링하기에 너무 많은 계산량 (모든 단추)입니다.

더 정교한 접근 방법은 coreanimation과보다 기본적인 터치 이벤트 처리를 사용하여 낮은 레벨에서 게임 그리드를 다시 구현하는 것이지만, 비트 맵 해킹이 충분히 잘 작동하면 과잉 될 수 있습니다.

관련 문제