문제

사용자가 도구 모음에서 항목을 클릭 할 때 도구보기 컨트롤러를 표시하는 도면 응용 프로그램을 작성하고 있습니다. 그러나 내 베타 테스터 중 일부는 도구 구개가 너무 느리게 열린다고보고했습니다. 표준 현재 ModalViewController : Animated : Call을 사용하여 도구를 표시하고 이와 같은 코드 블록으로 래핑하여 속도를 높이려고 시도했습니다.

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration: 0.1];
[self presentModalViewController:settings animated:YES];
[UIView commitAnimations];

불행히도, 그것은 작동하지 않습니다. 애니메이션이라고 말하면 : 아니오는 더 잘 작동하지만 기본 드로잉 캔버스보기가 즉시 제거됩니다 (컨트롤러가 더 이상 보이지 않다고 생각하기 때문에). 따라서 애니메이션은 흰색 배경에서 발생합니다.

그 전에이 작업을 수행 한 사람이 몇 가지 기꺼이 조언을 제공 할 것입니까? 감사합니다!

도움이 되었습니까?

해결책

비슷한 질문이 있습니다 여기.

이 기술을 사용하여 속도를 변경할 수 있지만 실험에서는 제안한대로 빈 배경을 넘어갑니다.

다른 팁

편집 : iOS 5 이상에 대한 컨트롤러 격리와 함께 다른 옵션이 추가되었습니다.

또 다른 해결책은 레이어의 시간 공간을 설정하는 것입니다.

이것은 Calayer의 속도 속성을 통해 이루어집니다. 애니메이션을 늦추려면 다음을 사용할 수 있습니다.

MytransparentVCViewController *vc = [[MytransparentVCViewController alloc] initWithNibName:@"MytransparentVCViewController" bundle:nil];
// Makes all animations 10 times slower
// To speed it up, set it to multiples of 1: 2 is 2 times faster, 3 is 3 times faster etc
vc.view.layer.speed = 0.1; 
[self presentModalViewController:vc animated:YES];

링크 된 게시물의 제안 된 솔루션은 목표가 제시하려는 모달 뷰 컨트롤러의 애니메이션 속도를 변경하는 경우 작동하지 않습니다 (예 : uimodaltransitionStylecovertical을 사용하는 경우).

레이어의 속도는 절대 값이 아니라 해당 레이어의 상위 시간 공간의 함수입니다 (레이어가 층 계층 구조의 루트에 있지 않는 한). 예를 들어, 레이어 속도를 2로 설정하면 해당 레이어 부모의 애니메이션과 비교하여 애니메이션이 두 배 빠르게 실행됩니다.

또 다른 옵션은 View Controller Contlent를 사용하는 것입니다. (iOS 5 이상 만)

http://developer.apple.com/library/ios/documentation/uikit/reference/uiviewcontroller_class/reference/reference.html#//apple_ref/doc/uid/tp40006926-ch3-sw81.

UIViewController의 TransitionFromViewController : ToviewController : DURATION : 옵션 : 애니메이션 : 완료 :.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top