Я представления UIViewController, который содержит UIVisualEffectView следующим образом:UIVisualEffectView в ИО 10
-(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 так, что, когда появляется контроллер представления с размытием, размытие будет быть «применен» к содержимому контроллера представления, который его представляет; у segue есть стиль перехода Cross Dissolve.
Эффект выглядит так, как ожидалось. Однако в iOS 9 презентация более плавная, чем в iOS 10. В iOS 10, когда появляется контроллер просмотра, кажется, что это двухэтапная анимация, тогда как в iOS 9 размытие применяется немедленно.
картинка стоит тысяч слов, поэтому я загрузил видео, демонстрирующее это странное поведение:
UIVisualEffectView iOS 9 vs iOS 10
Мой вопрос: Как я могу представить контроллер представления в ИО 10, как это представлено в прошивке 9?
Удивительный! Прекрасно работает. Я использовал тот же проект, который использовал для видео, которое я разместил, и загрузил его в GitHub с вашим решением. Спасибо. > https://github.com/Axort/BlurTest-iOS10 – Axort
Я предлагаю использовать анимацию весны и продолжительность 0,5. Это то, что делает уроженец. –
@ У вас есть своя версия? – user2722667