2014-10-09 3 views
1

탐색 막대가없는 푸시 전환을 에뮬레이트하기 위해 사용자 정의 segue 클래스를 구현했습니다. 트릭은 스냅 샷을 찍어 뷰에 추가하고 viewController를 교체하고 스냅 샷을 이동 한 다음 마지막으로 제거하는 것입니다. 이것은 viewController의 수평 이동을 에뮬레이트하지만 실제로는 두 개의 UIImagesView 만 이동됩니다.UIView animateWithDuration is not animating in ios8

다음 코드는 이것을 구현합니다.

self.destinationImageView.frame = offsetFrameD; 
self.sourceImageView.frame = offsetFrameS; 

//ViewController replacement 
[self.sourceViewController presentModalViewController:self.destinationViewController animated:NO]; 

//Overpose the snapShot who will simulate the transition between vies. 
[destinationView addSubview: self.sourceImageView]; 
[destinationView addSubview: self.destinationImageView]; 

[UIView animateWithDuration:1.0 
         delay:0.0 
        options:UIViewAnimationOptionCurveEaseOut 
       animations:^{ 
        self.destinationImageView.frame = self.finalFrameD; 
        self.sourceImageView.frame = self.finalFrameS; 
       } 
       completion:^(BOOL finished) { 
        [self.sourceImageView removeFromSuperview]; 
        [self.destinationImageView removeFromSuperview]; 
       }]; 

이 코드는 iOS 7에서 작동했습니다. 그러나 iOS 8을 사용하면 애니메이션이 실행되지 않는 것처럼 보입니다. destinationImageView 및 sourceImageView는 finalPosition (ANTIATING없이)으로 직접 이동되며 완료 블록이 호출되지 않으므로 두 UIImageView가 최종적으로 제거되지 않습니다.

iOS 8을 사용하여 애니메이션을 수행하는 방법을 아는 사람이 있습니까?

+0

는 당신이 자동 레이아웃이 활성화합니까? 스토리 보드에서 크기 수업을 사용 설정 했습니까? – Fogmeister

+0

이 질문에 도움이 될만한 데 도움이 될 것입니다. http://stackoverflow.com/questions/24472663/ios-8-animation-bug – BoilingLime

답변

-2

애니메이션이 시작되기 전에 다음 코드 줄을 사용

[UIView setAnimationsEnabled:YES]; 
+0

애니메이션을 시작하기 전에이 코드를 사용하여이 단일 코드를 작성하십시오. – Anz

+0

[UIView setAnimationsEnabled : YES]; [UIView animateWithDuration : 3.0 애니메이션 :^{ } 완료 :^(BOOL 완료) { }]; – Anz