58 votes

UIPopover sans aucune flèche

Est-il possible de présenter un popover sans aucune sorte de flèche pointant quelque part ?

1 votes

Vous voulez donc un contrôleur de vue modal ?

2 votes

Vous suggérez que j'utilise -presentModalViewController:animated: ? C'est extrêmement différent d'un UIPopover. Il n'offre pas le même aspect et la même sensation qu'un UIPopover, et vous êtes limité à certaines dimensions fixes.

108voto

Matt Points 1260

Oui, c'est possible, il suffit de le faire :

 [self.popoverController presentPopoverFromBarButtonItem:anItem   
                                permittedArrowDirections:0
                                                animated:YES];

Le zéro ne représente aucune direction.

0 votes

Cela fonctionne pour moi !!! merci... apple acceptera-t-il cela ? ... au fait, est-il possible de présenter un clavier à l'intérieur d'un popover, comme sur l'ipad passcode ? stackoverflow.com/questions/3636560/

0 votes

En mettant ce paramètre à 0, le dimensionnement de mon popover est cassé.

2 votes

Essayez de créer une sous-classe de la classe UIPopoverBackground et de remplacer la méthode getter arrowDirection. Dans cette méthode, renvoyez 0.

10voto

Götze Points 1683

Définissez le permittedArrowDirections à 0.

permittedArrowDirections:0

Code -

[self.popoverController presentPopoverFromBarButtonItem:anItem   
                                permittedArrowDirections:0
                                                animated:YES];

Zéro dit "NoDirection".

0 votes

Vous pouvez également le faire dans la suite du storyboard en désélectionnant toutes les cases à cocher de la direction de la flèche.

4voto

suresh Points 41

Essayez ceci, ça marche pour moi.

[self.popoverViewController presentPopoverFromRect:rect inView:self.view  permittedArrowDirections:0 animated:YES];

3voto

Edward Points 1859

Cela fonctionne bien pour moi.

[popoverController presentPopoverFromRect:CGRectMake(0, 0, 20, 20)
                                    inView:self.view 
                  permittedArrowDirections:NULL 
                                  animated:YES];

Profitez du codage.

2voto

Kevlar Points 3988

Non, il n'y a pas UIPopoverArrowDirectionNone et l'option UIPopoverArrowDirectionUnknown jette une exception si vous essayez de l'utiliser pour présenter.

Au lieu d'un contrôleur popover, vous pouvez appeler presentModalViewController:animated: et définissez le contrôleur que vous présentez pour avoir un style de présentation modal de UIModalPresentationFormSheet ou peut-être UIModalPresentationPageSheet . Ce sont des écrans popup plus traditionnels que les popovers.

2 votes

Malheureusement, presentModalViewController est limité à certaines tailles de cadre particulières, alors que les popovers ne le sont pas, à moins que je ne manque quelque chose. Ils n'offrent pas non plus le même aspect et la même sensation qu'un popover.

0 votes

C'est exact. Malheureusement, si vos exigences sont strictes, vous devrez peut-être créer vos propres popups pour obtenir ce que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X