2014-10-09 4 views
1

Я внедрил пользовательский класс segue для эмуляции перехода push без панели навигации. Хитрость заключается в том, чтобы сделать снимки, добавить их в представление, заменить viewController, переместить моментальные снимки и, наконец, удалить их. Это создает горизонтальное перемещение viewController, но на самом деле перемещаются только два UIImagesView.UIView animateWithDuration не анимация в 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 (БЕЗ ПРЕДОТВРАЩЕНИЯ), и блок завершения не вызывается, поэтому оба UIImageView не удаляются окончательно.

Кто-нибудь знает, как анимация должна выполняться с iOS 8?

+0

ли вы включили AutoLayout? Включили ли вы классы размера в своем раскадровке? – 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

Смежные вопросы