12
votes

Définir la direction et la position de la flèche UIPOPOVER manuellement

J'utilise uibarbuttonitem. Dans mon scénario, je veux montrer une ponphère de chaque bouton de bar lorsque je double-cliquez sur ce bouton de barre. J'utilise donc une uitapère de cet uibarbuttonitem. Mais, la flèche Popover apparaît toujours au milieu de tous les Uibarbuttonitem.

Je ne peux pas faire apparaître la flèche au milieu de chaque bouton de barre. Mon ami me disait de mettre la direction de la flèche à l'aide de point, mais je ne sais pas comment faire ça.

Comment puis-je régler à la fois la position et la direction de la flèche de la popover?


1 commentaires

Owhh..matank's ... je ne le réalisais jamais avant :)


4 Réponses :


20
votes

Définissez la direction de la POPOVER à l'aide de:

yourPopover?.permittedArrowDirections = .up // or .down, .left, .right


6 commentaires

Je sais à propos de cette direction, mais je veux dire que je veux changer la position de la direction .. J'utilise UipoppoverarrowDirectionUp, mais je veux que la flèche est en x = 50 et y = 100, puis-je faire ça ??


Je suis vraiment obsédé à ce jour-là quelques mois ... Malheureusement, vous ne pouvez pas spécifier la position de la flèche, seul le rectangle que l'UiIpopover présente.


Nope ça n'a pas haha, j'étais un peu en espérant que Stackoverflow connaissait la réponse à cette question ASWELL ... J'ai une idée de hacky sur le faire travailler ... mais n'essayera que une fois que j'ai abandonné la recherche d'un 3ème Party PopoverController ou a trouvé une bonne façon de déplacer l'emplacement de la flèche ... mettra à jour ma question Stackoverflow Question si une réponse est trouvée ...


@Samritchie mais vous peut Spécifiez la position de la flèche en définissant le CGRRECT qu'il pointe de la taille d'une taille de 0 par 0.


@ R.Dewi La réponse acceptée est correcte, changez la direction en bas.


Merci, tu as fait ma journée



0
votes

Si vous utilisez une méthode d'ibaction, vous pouvez utiliser l'expéditeur (ID) comme paramètre. (C'est-à-dire le bouton d'appel), vous pouvez ensuite définir le rectangle de fixation de la pondeuse sur le cadre du bouton. La flèche fera de son mieux pour attacher le long de ce cadre dans un endroit approprié. Voir Référence de la classe UIPOPOVERCONTROLLER . < PRE> XXX

Vous pouvez également coder que CGRRECT à la main si nécessaire. Réduire la largeur / la hauteur du rectangle vous permettra de contrôler plus étroitement la position de la flèche.


0 commentaires

15
votes

I Utilisez la méthode permisaRrowDirections = .down em>, c'est un travail pour moi. EXEMPLE SWIFT:

if let popoverPresentationController = shareViewController.popoverPresentationController {
    popoverPresentationController.permittedArrowDirections = .Down
    popoverPresentationController.delegate = self
    popoverPresentationController.sourceView = sender as! UIButton
    popoverPresentationController.sourceRect = CGRectMake(0, 0, sender.frame.size.width, sender.frame.size.height)
}


2 commentaires

Vous pouvez utiliser popcontroller.popoverpresentationcontroller? .sourceview = expéditeur comme? UIView; popcontroller.poppoverpresentationController? .Sourcerect = expéditeur.bounds


Vous pouvez modifier popoverpresentationController.sourcerect = cgrrecture (0, 0, sender.frame.frame.frame.frame.frame.frame.frame.height) par PopoverpresentationController.sourcerect = expéditeur.bounds



0
votes

Vous pouvez définir la direction de la flèche de l'inspecteur des attributs de Storyboard SECTOARD SECTUE. Par exemple, je règle la direction de la flèche vers le bas uniquement dans la capture d'écran suivante: Entrez la description de l'image ici


0 commentaires