UIVisualEffectView in iOS 10
Ich präsentiere einen UIViewController, der eine UIVisualEffectView enthält, wie folgt:
-(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;
}
}
Wie Sie sehen, verwende ich den UIModalPresentationStyleOverFullScreen, damit die Unschärfe beim Anzeigen des Ansichtscontrollers auf den Inhalt des Ansichtscontrollers angewendet wird, der sie anzeigt. Die Überblendung hat einen Cross-Dissolve-Stil.
Der Effekt sieht wie erwartet aus. In iOS 9 ist die Darstellung jedoch weicher als in iOS 10. In iOS 10 erscheint der Ansichts-Controller wie eine Animation in zwei Schritten, während in iOS 9 die Unschärfe sofort angewendet wird.
Ein Bild sagt mehr als tausend Worte, also habe ich ein Video hochgeladen, das dieses seltsame Verhalten zeigt:
UIVisualEffectView iOS 9 vs iOS 10
Meine Frage lautet: Wie kann ich den View Controller in iOS 10 so präsentieren, wie er in iOS 9 dargestellt wird?