Je vous présente un UIViewController qui contient un UIVisualEffectView comme suit:
-(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;
}
}
Comme vous pouvez le voir, je suis en utilisant le UIModalPresentationStyleOverFullscreen de sorte que lorsque la vue contrôleur flou apparaît, le flou sera "appliqué", le contenu de la vue-contrôleur qui est de la présenter; la séquence a une Croix Dissoudre style de transition.
L'effet ressemble comme prévu. Cependant, dans iOS 9 la présentation est plus lisse que dans iOS 10. Dans iOS 10 lorsque la vue du contrôleur s'affiche, il semble comme un 2-l'étape de l'animation, tandis que dans iOS 9 le flou est appliqué immédiatement.
Une image vaut mille mots, alors j'ai téléchargé une vidéo montrant ce comportement étrange:
UIVisualEffectView iOS 9 vs iOS 10
Ma question est: Comment puis-je présenter le point de vue du contrôleur dans iOS 10, comme il est présenté dans iOS 9?