1

previous question과 같은 코드이지만 다른 문제점이 있습니다.사용자 정의 비율 및 뒤집기 애니메이션을 실행 한 후 작업 표시 줄에서 뷰를 그리는 이유는 무엇입니까?

UINavigationController에보기 컨트롤러를 추가하기 위해 사용자 지정 애니메이션을 만들었습니다. 애니메이션이 완료 될 때 문제가 새보기가 아주 멋지게 표시되는 것을

[UIView animateWithDuration:scaleDuration delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ 
    // Scale the controllers' views down. 
    self.view.transform = CGAffineTransformScale(self.view.transform, 0.8, 0.8); 
} completion:^(BOOL finished) { 
    // Transition to the new view and push on the new view controller. 
    [UIView transitionWithView:self.view duration:1 options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionTransitionFlipFromLeft animations:^{ 
     [self pushViewController:viewController animated:NO]; 
    } completion:^(BOOL finished) { 
     [UIView animateWithDuration:scaleDuration delay:0 options:UIViewAnimationOptionCurveLinear animations: 
^{ 
      // Scale back to the original size. 
      self.view.transform = CGAffineTransformScale(self.view.transform, 1.25, 1.25); 
     } completion:nil]; 
    }]; 
}]; 

:이 코드는 다음 다시 원래 크기로 최대를 확장, 그것을 뒤집 후, 80 % 원래 크기로보기를 확장 단, 작업 표시 줄 아래에 그려집니다. 즉, 화면 원점 0,0에서 0,20을 그립니다. "상태 표시 줄"옵션은 IB에서 ("검정"으로) 설정되며, 표준 UINavigationController 푸시 애니메이션을 사용하면 내 맞춤 설정 만 사용하면 당연히 이러한 일이 발생하지 않습니다. 애니메이션 후에 장치를 회전하면 회전 할 때 다시 그리면 해당 위치로 이동합니다. 그런데 어떻게해야할까요?

추가 주름으로 pushViewController:animated: 블록을 completion: 블록으로 호출하면 작업 표시 줄 아래로 그려지지 않습니다. (보기가 자기 자신을 뒤집어 갑자기 새로운보기를 보여 주지만).

+0

원래 크기로 축소 할 때'self.view.transform = CGAffineTransformIdentity; '만 설정하면됩니다. 항등 변환은 항상 크기가 조정되지 않고 회전도되지 않습니다. –

+0

감사합니다. 그것을 시도, 아무런 차이가 없습니다. – theory

+0

danyowdee는 이전 질문에서 "presentViewController : animated : completion :'을 사용하여 'UIModalTransitionStyleFlipHorizontal'으로 전환 스타일을 설정하지 못했습니다?" –

답변

0

지금까지 탐색 표시 줄을 숨긴 다음 표시하는 방법 만 찾아 냈습니다. 당신이 당신의 추가, 다음과 같은 변형이 개 라인을 설정 한 후

:

[self setNavigationBarHidden:YES]; 
[self setNavigationBarHidden:NO]; 

그것은 추한하지만 작품은, 나 또한 더 나은 솔루션을 찾고 있어요.

참고 : layoutsubview, setNeedsLayout은 작동하지 않습니다.

+0

니스! 이 코드 경로를 포기해야했지만 결국은 다시 돌아가서 솔루션이 작동되기를 바랍니다! 나는 그것을 이해할 것이다 (그것은 이해된다!), 그렇게 그것을 받아 들일 것이다. – theory

관련 문제