2009-12-15 4 views
1

우리는 세로와 가로 사이에서 많은 회전을하는 iPhone 응용 프로그램을 가지고 있습니다. 모든 것이 대부분 제대로 작동하지만 오리엔테이션 변화를 충분히 빠르게 (그리고 전혀하지 않는 경우) 받아들이지 않는 것 같습니다. 업데이트가 필요한 기본 회전 처리를 알려주는 방법이 있습니까? 차라리 맞춤형 가속도계 코드를 작성하지 않고 가속도계로 업데이트를받는 데 필요한 속도를 지정할 수 있음을 알고 있습니다.오리엔테이션 업데이트 지연 수정

답변

1

방향 변경에 대한 알림을받는 방법을 모르지만 - (void) orientationChanged : (NSNotification *) 알림을 사용하고 있습니다. 이 업데이트는 시뮬레이터에서 최소한 두 번 이상 빠르게 업데이트됩니다. 이모는 나를 위해 충분히 빠릅니다.

아, 그래, 그 문제가있었습니다. 사과 또는 DOCO의 예제 응용 프로그램에서 (내가 기억하지 못할)이 사용

    (무효)가 orientationChanged
  • : (NSNotification *) 통지 { [자기 performSelector : @selector (updateLandscapeView) withObject : afterDelay 무기 호 : 0]; 당신이하는 방법을 구축보다 }

  • (무효) updateLandscapeView { 경우 (UIDeviceOrientationIsLandscape (deviceOrientation) & & isShowingLandscapeView!) { [자기 presentModalViewController : scheduleMonth 애니메이션 : YES] ; isShowingLandscapeView = YES; } else if (deviceOrientation == UIDeviceOrientationPortrait & & isShowingLandscapeView) { [self dismissModalViewControllerAnimated : YES]; isShowingLandscapeView = NO; 이 세로로 돌아갑니다 경우 } }

난 당신이 복잡한 가로보기가있는 경우

당신은 아마도 스레드에서로드 할 수 updateLandscapeView

에서 호출되는 별도의 클래스 내 가로 방향을 넣고 스레드를 중지하고보기를 닫으십시오. 사용자가 빠르게 수행하는 경우 가로보기를 얻지 못할 수도 있지만 결함이나 가로 또는 세로보기에서 멈추지는 않을 것입니다.

+0

우리는 현재 (void) willRotateToInterfaceOrientation을 사용하고 있습니다 : (UIInterfaceOrientation) toInterfaceOrientation duration : (NSTimeInterval) duration – Bdebeez