J'ai une vue de collection et quand une cellule est sélectionnée, il présente une vue de Popover montrant plus d'informations sur cette cellule. P>
J'aimerais permettre à l'utilisateur de cliquer sur une autre cellule, puis de la modification de la vue de Popover pour afficher les informations de la cellule sans avoir à fermer la colleure. Si l'utilisateur devait cliquer quelque part sur la vue parent qui n'est pas une cellule, la ponphère devrait se fermer. Mais j'aimerais que l'utilisateur puisse toujours faire défiler la vue de la collection sans fermer la popover. P>
Comment cela peut-il être fait? p>
3 Réponses :
Ce que vous cherchez est le passthroughviews propriété de la popover. P>
Cependant, si vous ouvrez la popover à la suite de la prise d'une cellule, je ne vois pas comment faire défiler la collectionView aura un sens. N'ouvrez-vous pas la popover avec la flèche pointant vers votre cellule? Le défilement La vue rendra la cellule de présentation pour s'éloigner ... P>
Vous pouvez utiliser la propriété de UIViewController 'ModalInpover' pour activer les touches en dehors de la limite de Popover. Écrivez simplement la ligne indiquée ci-dessous dans votre contrôleur d'affichage que vous présentez à l'aide de Popover Controller.
self.modalInPopover = false
Écrivez cette ligne sur la vue ViewDidLoad ou votre propre méthode de configuration.
PassthroughView CODE> La propriété peut être utilisée lorsque vous souhaitez activer les touches dans certaines vues spécifiques.
Selon Apple:
Lorsqu'une popover est active, les interactions avec d'autres vues sont normalement désactivées jusqu'à ce que la ponphère soit rejetée. L'attribution d'une gamme de vues sur cette propriété permet des robinets à l'extérieur de la colleure d'être gérées par les vues correspondantes. p> BlockQuote>
Ensuite, vous pouvez utiliser
PASTHRUGHVIEWS CODE>
de la manière suivante: P>
CollectionViewController strong> p> blockQuote> xxx pré> Le code ci-dessus est le
CollectionViewController code> pour gérer le
uicollectionviewontroller code> et tous ses délégués. P>
CollectionViewCell strong> p> blockQuote> xxx pré> la cellule personnalisée avec juste un
Uilabel code> à l'intérieur. P>
POPOVERVIEWCONTROLLER FORT> P> blockquote> xxx pré> et enfin le
POPOVVIEWCONTROLLER code> Pour afficher sous forme de
.popover code>. p>
Il y a Certaines observations en réponse, je voudrais souligner: P>
i Définissez une référence à la classe
POPOVERVIEWCONTROLLER CODE> pour le conserver à travers le cycle de vie et transmettez les données informatiques quand il reste ouvert. P> LI>
la ligne
var t = self.popoverviewcontroller !.view code> C'est nécessaire car sinon le
@iboutlet code> à l'intérieur du
POPOVERVIEVOLLER code> était pas init jusqu'à ce qu'il soit présenté, il pourrait y avoir d'autres moyens de le faire. P> li>
Je présente la popover au milieu de l'écran pour gérer le robinet dans plusieurs cellules et tester le défilement aussi, vous pouvez l'afficher dans n'importe quelle position souhaitée. P> LI>
dans les vues pour permettre quand le Popover est ouvert, je définis le
self.view code>, mais de cette façon, vous devez le renvoyer pour vous, car il n'est jamais rejeté lorsque Vous faites des robinets dans la vue, vous pouvez mettre n'importe quelle vue que vous voulez à la place. p> li> ul>
Tout problème que vous avez avec la solution que je peux partager le projet sur GitHub. P>
J'espère que cela vous aidera p> p>