¿Es posible presentar un popover sin ningún tipo de flechas apuntando a alguna parte?UIPopover sin flechas
Respuesta
Si es posible simplemente hacer:
[self.popoverController presentPopoverFromBarButtonItem:anItem
permittedArrowDirections:0
animated:YES];
El cero representa ninguna dirección.
me funciona! gracias ... ¿Apple lo aceptará? ... por cierto, ¿es posible presentar un teclado dentro de un popover, como se ve en el código de acceso de ipad? http://stackoverflow.com/questions/3636560/how-to-present-keyboard-inside-popover-ipad-passcode-lock-style – Omer
Sí Apple lo ha aceptado – Matt
Esto ya no funciona en iOS 6.0 – buildsucceeded
No, no existe la opción UIPopoverArrowDirectionNone
, y UIPopoverArrowDirectionUnknown
arroja una excepción, creo que si intenta usar eso para presentar.
En lugar de un controlador de popover, puede llamar al presentModalViewController:animated:
y configurar el controlador que está presentando para tener un estilo de presentación modal de UIModalPresentationFormSheet
o quizás UIModalPresentationPageSheet
. Esas son pantallas emergentes más tradicionales que los popovers.
Desafortunadamente, presentModalViewController está limitado a ciertos tamaños de fotogramas particulares, mientras que los popovers no lo son, a menos que me falta algo. Tampoco brindan la misma apariencia que un popover. –
Eso es correcto. Lamentablemente, si sus requisitos son estrictos, es posible que deba desplegar sus propias ventanas emergentes para obtener lo que desea. – Kevlar
Prueba esto, funciona para mí.
[self.popoverViewController presentPopoverFromRect:rect inView:self.view permittedArrowDirections:0 animated:YES];
Establecer la permittedArrowDirections
a 0.
permittedArrowDirections:0
Código -
[self.popoverController presentPopoverFromBarButtonItem:anItem
permittedArrowDirections:0
animated:YES];
Cero dice "NoDirection".
También puede hacerlo en el guion gráfico anulando la selección de todas las casillas de dirección de la flecha. – Echelon
prueba este
[popOverController presentPopoverFromRect:CGRectMake(0, 0, 30, 40) inView:popOverContentView permittedArrowDirections:0 animated:NO];
Esto funciona muy bien para mí.
[popoverController presentPopoverFromRect:CGRectMake(0, 0, 20, 20)
inView:self.view
permittedArrowDirections:NULL
animated:YES];
Enjoy Coding.
Uso Popover para mostrar el menú dependiendo de la coordenada táctil. En este caso popover utiliza una altura máxima de self.view
CGRect popeverFrame = CGRectMake(touchPoint.x, touchPoint.y, 0, 0);
[self.popover presentPopoverFromRect:popeverFrame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
pero cuando se utiliza 0-dirección. El rectángulo de Popover no establece su altura al máximo y solo puede establecerse mediante la propiedad apropiada.
CGRect popeverFrame = CGRectMake(touchPoint.x, touchPoint.y, 0, 0);
[self.popover presentPopoverFromRect:popeverFrame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
Esperamos que esto ayude: Help with UIPopOverController size
No utilice de Popovers si no desea mostrar flechas. Presente su controlador de vista como un modal y use un UIModalPresentationFormSheet en su lugar.
Ejemplo:
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MyStoryBoard" bundle:nil];
UIViewController* viewController = [sb instantiateViewControllerWithIdentifier:@"myViewController"];
viewController.modalPresentationStyle = UIModalPresentationFormSheet;
[presenterViewController presentViewController: viewController animated:YES completion:^{
}];
Una solución simple en SWIFT:
popover!.permittedArrowDirections = nil
Dice como error: nil no se puede asignar al tipo –
para el iPhone y rápida 2.0 prueba este
Código para iniciar popover
initiatePopover(){
let popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("XYZController") as! XYZController
let nav = UINavigationController(rootViewController: popoverContent)
nav.modalPresentationStyle = UIModalPresentationStyle.Popover
let popover = nav.popoverPresentationController
popoverContent.preferredContentSize = CGSizeMake(250 ,200)
popover!.delegate = self
popover!.sourceView = self.view
popover!.sourceRect = CGRectMake(200,200,0,0)
popover!.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
self.presentViewController(nav, animated: true, completion: nil)
}
y añadir a su ViewController
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.None
}
Para Swift 2.0
y iOS9
la solución es:
popoverViewController?.permittedArrowDirections = UIPopoverArrowDirection()
El valor del tipo 'UIPopoverController' no tiene ningún miembro 'allowedArrowDirections' – SpyZip
@SpyZip Esto funciona. Quizás olvidaste el signo de interrogación. –
En mi caso para el desarrollo rápido Ircops
popoverController.sourceView = self.view
popoverController.sourceRect = self.view.bounds
popoverController.backgroundColor = UIColor.brownColor()
popoverController.permittedArrowDirections = UIPopoverArrowDirection.init(rawValue: 0)
popoverController.sourceRect = CGRectMake(width/4, hieght/4, width/2, hieght/2);
Para realizar una emergente sobre la dirección ninguno y crea que aparezca en el centro del controlador de vista:
let PopSrnVar = popoverPresentationController
let ConRctVar = view.frame
PopSrnVar!.sourceRect = CGRectMake(ConRctVar.width/4, ConRctVar.height/4, ConRctVar.width/2, ConRctVar.height/2)
// To make arrows as none
PopSrnVar!.permittedArrowDirections = UIPopoverArrowDirection()
Swift3, este trabajo código para mí
popover.permittedArrowDirections = .init(rawValue: 0)
En swift 3, puede construir una extensión UIPopoverArrowDirection
para esto:
extension UIPopoverArrowDirection {
public static var noArrow: UIPopoverArrowDirection {
return UIPopoverArrowDirection(rawValue: 0)
}
}
y el que puede hacer:
popoverPresentationController!.permittedArrowDirections = .noArrow
- 1. UIPopoverController sin flechas?
- 2. Transparente UIPopover
- 3. UIPopOver y cambio de orientación
- 4. Detener UIPopover de descartar automáticamente
- 5. ¿Puedo mapear el primer elemento de un par sin flechas?
- 6. UIPOPOVER para Iphone? o es falso?
- 7. HorizontalScrollView con flechas
- 8. flechas redondeadas con CSS
- 9. Creando DIVs rectangulares con flechas
- 10. Haskell Flechas dentro de Tuples
- 11. flechas del diagrama polar ggplot2
- 12. símbolos Unicode (flechas) en Java
- 13. exposición sobre flechas en haskell
- 14. Usos creativos de las flechas
- 15. Lienzo HTML - Dibujar flechas curvas
- 16. Trazado de flechas con gnuplot
- 17. Recursividad observable (o vinculante) en Flechas
- 18. Flechas/HXT y firmas de tipo
- 19. Cómo alternar entre las flechas desplegables
- 20. UIPopover ¿Cómo hago un popover con botones como este?
- 21. Cómo descartar UIPopover de un botón en el Popover
- 22. Establezca el título de una vista de UIPopOver mediante programación
- 23. En Visio, ¿cómo obtengo las flechas de aspecto normal? (Las flechas de línea no las triángulo)
- 24. ¿Cómo puedo crear un NSPopUpButton que utiliza una imagen fija y sin flechas?
- 25. Agregar flechas de clasificación predeterminadas a GridView
- 26. Fancybox 2 flechas de navegación visibles
- 27. Flechas arriba y abajo del teclado
- 28. Construcciones de cálculo (Mónadas, Flechas, etc.)
- 29. Java - con botones que muestran flechas
- 30. Creación programática de flechas vectoriales en KML
Así que quieres un controlador de vista modal? – kennytm
¿Está sugiriendo que use '-presentModalViewController: animated:'? Eso es extremadamente diferente de un UIPopover. No proporciona la misma apariencia que UIPopover, y está limitado a ciertas dimensiones fijas. –