UIVisualEffectView в iOS 10
Я представляю UIViewController, который содержит UIVisualEffectView следующим образом:
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier:@"segueBlur" sender:nil];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([segue.identifier isEqualToString:@"segueBlur"]) {
((UIViewController *)segue.destinationViewController).providesPresentationContextTransitionStyle = YES;
((UIViewController *)segue.destinationViewController).definesPresentationContext = YES;
((UIViewController *)segue.destinationViewController).modalPresentationStyle = UIModalPresentationOverFullScreen;
}
}
Как вы можете видеть, я использую UIModalPresentationStyleOverFullScreen, чтобы при появлении контроллера представления с размытием размытие было «применено» к содержимому контроллера представления, который его представляет; у перехода есть стиль перехода Cross Dissolve.
Эффект выглядит как и ожидалось. Однако в iOS 9 презентация более плавная, чем в iOS 10. В iOS 10, когда появляется контроллер вида, это выглядит как двухэтапная анимация, в то время как в iOS 9 размытие применяется сразу.
Картинка стоит тысячи слов, поэтому я загрузил видео, показывающее это странное поведение:
UIVisualEffectView iOS 9 против iOS 10
У меня вопрос: как я могу представить контроллер представления в iOS 10, как он представлен в iOS 9?