我已經實現了一個自定義的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(WITHOUT ANIMATING)並且不調用完成塊,所以兩個UIImageView都不會最終被刪除。
有誰知道應該如何使用iOS 8執行動畫?
您是否啓用了自動版式?您是否在故事板中啓用了尺寸類別? – Fogmeister 2014-10-09 11:24:00
看看這個問題,它可能會幫助你:http://stackoverflow.com/questions/24472663/ios-8-animation-bug – BoilingLime 2014-10-09 11:26:39