애니메이션 uinavigationcontroller 가의'다시'버튼
-
29-09-2020 - |
문제
나는 사용자 정의 버튼에서 보기 컨트롤러에서 탐색 컨트롤러의 계층 구조,는 누를 때,팝 보이는 뷰 컨트롤러입니다.
을 사용하고 싶 UIView 의 transform
산 애니메이션을 닫기 컨트롤러입니다.그것은 작동하지만,사용하면`popViewControllerAnimated:YES'기본 왼쪽 슬라이드의 애니메이션은 여전히 있지만 내용에 변환한다.
는 경우 설정 popViewControllerAnimated:NO
지 않는 애니메이션도 있다.
또한 보였으로 사용 CATransition
작동하는 경우 나 popViewControllerAnimated
설정 NO
, 지만,없습니다"확대"효과의 일부를 공개 API,그리고 내가 사용하고 싶지 않은 개인 효과가 있다.사용자 정의 필터는 사용할 수 없 아이폰,만 OS X.
그래서 저의 질문은:
1)방법이 있을 제거하는 왼쪽에 슬라이드 기본 전환 그러나 아직도 사용자 지정 사용하여 애니메이션 transform
?
2)어떤 방법을 사용하는 사용자 정의 필터링 CATransition
?
3)내가 사용하는 경우 개인에 대한 API 를 확대 효과 어떻게 가능성이 애플을 던져 내 응용 프로그램에는 거절통?
는 누구든지 해결책을 나는 전?
해결책
I've done 과 비슷하게 설명하,즉기본값을 변경에 대한 애니메이션이 팝업 및 푸시의 보기에 uinavigationcontroller 가.
아이디어가 사용하지 않는 기본 애니메이션 개체에 대한 대체과 당신의 자신의 애니메이션이다.나는 새로운 카테고리를 만들어에 대한 uinavigationcontroller 가 사용하는 함수와 유사한다.
- (void) altAnimatePopViewControllerAnimated:(BOOL)animated
{
[CATransaction begin];
CATransition *transition;
transition = [CATransition animation];
transition.type = kCATransitionPush; // Use any animation type and subtype you like
transition.subtype = kCATransitionFromTop;
transition.duration = 0.3;
CATransition *fadeTrans = [CATransition animation];
fadeTrans.type = kCATransitionFade;
fadeTrans.duration = 0.3;
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
[[[[self.view subviews] objectAtIndex:0] layer] addAnimation:transition forKey:nil];
[[[[self.view subviews] objectAtIndex:1] layer] addAnimation:fadeTrans forKey:nil];
[self popViewControllerAnimated:YES];
[CATransaction commit];
}
그냥 사용하는 코드를 사용
[self.navigationController altAnimatePopViewControllerAnimated:YES];
하기 위해서 마냥을 만들의 또 다른 비슷한 기능과 역방향의 애니메이션이다.
그것은 완전하지 않지만 작동합니다.를 선택하면 다른 애니메이션 형식으로 놀러 다른 하위를 구성 네비게이션 바/컨트롤러 그것을 얻을 완벽하다.
져 꽤 흰색이므로,현명하게 사용:)
*******편집
를 교체하고 밀로의 전환이(지 않았다 그것을 자신을 시도하는):
CAKeyframeAnimation *scale = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];
scale.duration = duration;
scale.values = [NSArray arrayWithObjects:[NSNumber numberWithFloat:.5f],
[NSNumber numberWithFloat:1.2f],
[NSNumber numberWithFloat:.85f],
[NSNumber numberWithFloat:1.f],
nil];
이것을 할 것입니다 pop 서,즉보기 더 큰 것입하기 전에 정착입니다.재생의 값을 배열을 제어하는 곡선의 애니메이션이다.