Plein écran: AVPlayerLayer n'est pas redimensionné lors du redimensionnement de sa vue parent

Je suis en train d'élaborer un lecteur vidéo avec le AVPlayer API de AV de la Fondation dans MonoTouch (mais une solution objective-c pourrait être sympa aussi). Je suis en train de mettre en œuvre un mode plein écran.

Pour afficher les images de la vidéo, j'ai une UIView (appelons ça de la lecture à vue) où j'ai ajouté la AVPlayerLayer comme sous-vue de la lecture couche de la vue:

UIView *playbackView = ...
AVPlayerLayer *playerLayer = ...
[playbackView.layer addSublayer:playerLayer];

la couche de propriétés sont définies comme suit:

playerLayer.needsDisplayOnBoundsChange = YES;
playbackView.layer.needsDisplayOnBoundsChange = YES;

pour être sûr qu'ils sont redimensionnées si la lecture de la taille d'affichage est modifié. D'abord, la lecture à vue a les coordonnées (0, 0, 320, 180) (seuls les affiché au haut de l'INTERFACE utilisateur). Ensuite, je fais un plein écran de l'animation par le réglage de la lecture à vue taille de l'image comme étant la taille de la fenêtre:

playbackView.frame = playbackView.window.bounds;

Il fonctionne très bien. La lecture à vue est maintenant remplir toute la fenêtre (définir une couleur d'arrière-plan pour le voir). Mais mon AVPlayerLayer est toujours rester au sommet de la vue comme précédemment, dans la non-mode plein écran.

Pourquoi le AVPlayer couche n'est pas redimensionnée en fonction de la lecture à vue nouvelle taille? Je dois faire une animation sur le AVPlayerLayer ainsi? Une actualisation avec setNeedsLayout, layoutSubviews (il ne semble pas changer quelque chose...)? Supprimer la AVPlayerLayer et l'ajouter à nouveau?

source d'informationauteur nicolas