przytaczam UIViewController, który zawiera UIVisualEffectView następująco:UIVisualEffectView w iOS 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;
}
}
Jak widać, używam UIModalPresentationStyleOverFullScreen tak, że gdy pojawi się kontroler widoku z blur, rozmycie będzie być "zastosowane" do treści kontrolera widoku, który je prezentuje; styl ma styl przejściowy Cross Dissolve.
Efekt wygląda tak, jak powinien. Jednak w iOS 9 prezentacja jest płynniejsza niż w systemie iOS 10. W iOS 10, gdy pojawia się kontroler widoku, wydaje się, że jest to animacja 2-etapowa, natomiast w iOS 9 rozmycie jest natychmiast stosowane.
Obraz jest wart tysiąca słów, więc przesłał film pokazujący to dziwne zachowanie:
UIVisualEffectView iOS 9 vs iOS 10
Moje pytanie brzmi: Jak mogę przedstawić kontroler Zobacz w iOS 10, jak to jest przedstawione w iOS 9?
Awesome! Działa świetnie. Użyłem tego samego projektu, którego użyłem do opublikowanego przeze mnie filmu, i przesłałem go do GitHub razem z twoim rozwiązaniem. Dziękuję Ci. > https://github.com/Axort/BlurTest-iOS10 – Axort
Proponuję użyć animacji wiosennej i trwać 0,5. Oto, co robi tubylec. –
@Axort masz szybką wersję tego? – user2722667