2017-05-03 1 views
0

comme le dit le titre, j'ai un premier contrôleur de vue (VC1) qui présente un second (VC2) modaly. sur VC2 j'applique un masque redimensionnable sur self.view.layer.mask qui change sa taille avec un geste de panoramique, mais quand le masque redimensionne je ne vois pas VC1 derrière VC2, je vois juste la couleur noire .backgroundColor de l'application UIWindow. les deux self.view.clipToBounds et self.view.layer.masksToBounds sont réglés sur true sur self.view de VC2. pourquoi donc? grâcemasquage présenté contrôleur avec CAShapeLayer masque également le contrôleur de présentation

vidéo bug: https://youtu.be/9Kda10Sl2g8

i a réussi à faire le tour comme @ nguyenbao95 suggéré dans son commentaire: Ajouter une autre UIView au self.view de VC2 (ce point de vue est au-dessus de l'instantané), puis ajouter tous vos contenus à cette vue. Et masquer cette vue. Je soupçonne que lorsque je modal présente VC2 alors VC1 n'est plus visible derrière VC2 jusqu'à ce qu'il soit à nouveau nécessaire.

Répondre

1

Avant de présenter le second VC, prenez une capture d'écran du premier VC. Et puis ajoutez un UIImageView avec cette image au second VC.

Espérons que cela résoudra votre problème

+0

Est-ce la façon dont je suis censé y aller? un masque 'CAShapeLayer' est-il supposé masquer toute la hiérarchie de vue derrière elle ou juste la vue sur laquelle elle est appliquée? – user1974368

+0

je l'ai essayé et il masque juste l'instantané aussi bien ... et cache également le reste de VC2 même si j'ai envoyé 'snapshotView' à l'arrière de' self.view' de VC2 – user1974368

+0

Je ne comprends toujours pas votre réponse, pourriez-vous donne moi une photo? – nguyenbao95