Come posso implementare questo menu popup nell'app per iphone come un popover in ipad?menu popup iPhone come popover iPad?
EDIT: Questa è la migliore al momento: https://github.com/runway20/PopoverView
Come posso implementare questo menu popup nell'app per iphone come un popover in ipad?menu popup iPhone come popover iPad?
EDIT: Questa è la migliore al momento: https://github.com/runway20/PopoverView
Dai un'occhiata alla realizzazione iPhone UIPopoverController: WEPopover
Grazie. Sai se usare WEPopover nella mia app è ok se voglio metterlo sullo Store? – Luke47
Dovrebbe essere. Non conosco i dettagli da quando un collega ha eseguito l'implementazione, ma ne abbiamo una versione modificata nella nostra app live. – clozach
[Suragch's answer below] (http://stackoverflow.com/a/32295907/4106164) è ora il modo standard per farlo dopo iOS 8. – Gordonium
Su iPhone si sarebbe generalmente utilizzare un UIActionSheet per una pila di bottoni del genere. Scorre verso l'alto dal basso, piuttosto che spuntare vicino al pulsante, ma questo è il comportamento standard su iPhone.
uhm ... come posso implementarlo?PS: lo screenschot in alto proviene da iphone app! – elp
@Paska: quale app per iPhone è questa? sono curioso – user102008
@ user102008 Non ricordo, ma è una vista con l'angolo arrotondato e un'immagine della freccia! Niente di così facile! – elp
Lo screenshot qui sopra non è un UIActionSheet. Sembra una sottoclasse UIView semplice con UIButtons personalizzati su di esso. Quindi vai avanti e crea la sottoclasse in base alle tue esigenze e poi aggiungila sotto forma di visualizzazione secondaria alla tua visualizzazione ogni volta che ne hai bisogno.
È necessario creare manualmente un'istanza di un UIView utilizzando un'immagine di sfondo personalizzata o un disegno con trasparenza, aggiungere alcuni UIButtons (o un altro tipo di visualizzazione personalizzata) in alto e gestire in qualche modo tutti i tocchi all'esterno di tale vista.
Nota che è l'interfaccia utente non standard. Un foglio di azione sarebbe più conforme a HIG.
C'è uno che è anche meglio di WEPopover. Sviluppato da una società chiamata 50pixels, si chiama FPPopover.
È possibile scaricare FPPopover a https://github.com/50pixels/FPPopover
È possibile controllare WYPopoverController: https://github.com/sammcewan/WYPopoverController
Cominciando con iOS 8, è possibile utilizzare UIPopoverPresentationController
per iPhone, oltre a iPad.
UIBarButtonItem
al controller principale View.UILabel
. Se vuoi un intero menu, aggiungi solo una vista tabella o un elenco di pulsanti.show
, scegli Present as Popover
.popoverSegue
(o qualsiasi stringa che si chiama nel codice).Questo è il codice per il principale controller della vista che ha la voce di pulsante della barra in esso.
class ViewController: UIViewController, UIPopoverPresentationControllerDelegate {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "popoverSegue" {
let popoverViewController = segue.destinationViewController
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
popoverViewController.popoverPresentationController!.delegate = self
}
}
// MARK: - UIPopoverPresentationControllerDelegate method
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
// Force popover style
return UIModalPresentationStyle.None
}
}
Se si desidera impostare il popover ad apparire da qualche parte oltre un elemento pulsante della barra (su un UIButton
per esempio), allora è necessario impostare il sourceView
e sourceRect
. Vedi this answer per i dettagli.
L'esempio proviene principalmente dal primo collegamento.
Questa dovrebbe essere la risposta accettata ora – Crashalot
Per ottenere un popover da una barra oggetto pulsante laterale destro su un controller di navigazione che fa parte di un controllore Tableview, la seguente ha funzionato per me per Swift 4 e Xcode 9.
Modifica "come! FilterVC", per usare il titolo del vostro controller della vista popover.
/// Shows a filter popover view
@IBAction func filterBtnPressed(_ sender: UIBarButtonItem) {
let popover = storyboard?.instantiateViewController(withIdentifier: FILTER_VC) as! FilterVC
popover.modalPresentationStyle = UIModalPresentationStyle.popover
popover.popoverPresentationController?.backgroundColor = UIColor.green
popover.popoverPresentationController?.delegate = self
popover.popoverPresentationController?.backgroundColor = ColorPalette.Blue.Medium
popover.popoverPresentationController?.sourceView = self.view
popover.popoverPresentationController?.sourceRect = CGRect(x: self.view!.bounds.width, y: 0, width: 0, height: 0)
popover.popoverPresentationController?.permittedArrowDirections = .up
self.present(popover, animated: true)
} }
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return UIModalPresentationStyle.none
}
@ Kev si chiude la mia domanda perché non è una vera e propria domanda? Dopo 12439 visualizzazioni? e molti commenti/risposte? È così strano come una domanda? Maahh. – elp
Secondo me questa è una domanda perfettamente valida. –
Grazie per riferimento !!! –