모달 변환을 사용하여 하나의 XIB에서 다른 XIB로 이동합니다. 한 가지를 제외하고는 모두 작동합니다. 전환이 시작되는 순간 모든 이동 애니메이션 나는 이전의 시각에서 해본 적이있다. 모든 고체 컬러 배경을두고 화면을 운항하는 효과를주는Dissolve transition은 UI 요소 프레임 변경을 되돌립니다.
이- (IBAction)chooseInsight:(id)sender {
[CATransaction setCompletionBlock:^{
ContainerViewController *insight = [[ContainerViewController alloc] init];
insight.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:insight animated:YES completion:nil];
}];
[self animateExit];
}
animateExit
방법은 여러 가지 UI 객체의 1 초 프레임의 움직임을 애니메이션을 여기
ContainerViewController
에 녹아 들었 으면합니다.
그러나 발생하면 UI 객체가 화면을 비행한다는 것입니다, 우리는 단색 배경을보고, 다음 버튼과 라벨 갑자기 모든 다시 그래서 그들은 ContainerViewController
에 용해 웁니다.
왜 그런 일이 발생합니까? 애니메이션을 돕기 위해 이전 뷰의 이미지가 캐싱 되었습니까? 그렇다면 전환하기 전에 캐시를 새로 고칠 수 있습니까? 아니면 그렇지 않은 경우,이 작업을 원활하게 수행하려면 어떻게해야합니까?
편집 : 그것은 관련이 경우, 나는 애니메이션이 끝날 때까지 지연하는 방법에 대한 this answer에서 CATransaction
비트를 얻었다. 두 마리의 애니메이션이 문제의 근원이라고 말하는 내 목소리가 있습니다.하지만 iOS 애니메이션으로 어떻게 익숙하지는 않은지 알 수 있습니다. ...
내 책을 참조하십시오. http://www.apeth.com/iOSBook/ch17.html#_animation_and_autolayout – matt
이것은 중요한 감사입니다! 나는 자동 레이아웃을 비활성화하고 모든 것이 즉시 시작되었습니다. – Nerrolken
@Nerrolken 그건 내가 실제로 생각한 해결책이 아니야. autolayout을 사용 중지하는 법을 배워야합니다. – matt