C'è un modo per rendere trasparente UIPopOver (alfa = 0,75 o giù di lì). Sfortunatamente non esiste una proprietà alpha per UIPopOver. Devo presentare un popover in modo che la vista sottostante sia ancora parzialmente visibile. Tutte le ideeTransparent UIPopover
risposta
popoverController.contentViewController.view.alpha = 0.5;
alfa è una proprietà di un UIView quindi è necessario per ottenere la vista del Popover e quindi impostare l'alfa a quella vista.
Attualmente non esiste una proprietà per impostare l'alfa di un UIPopoverController
.
Se lo fai: popoverController.contentViewController.view.alpha = 0.5;
L'interno contenuto & sarà trasparente e non il UIPopoverController
stesso.
partire con iOS5.0, uno in grado di fornire uno sfondo personalizzato per il UIPopoverController
. Lo sfondo deve essere derivato da UIPopoverBackgroundView
che fornisce le normali proprietà UIView
come alpha
. Si noti che il nome è un po 'confuso - il UIPopoverBackgroundView
fornisce la grafica di cornice, la freccia e lo sfondo.
Quindi, se avete bisogno di un interamente semitrasparente UIPopoverController
, tutto quello che dovete fare è fornire una classe UIPopoverBackgroundView
che imposta il suo alpha
verso qualcosa sotto 1.0
. Dovrai anche assicurarti che la vista di contentViewController sia (completamente) trasparente.
Esempio:
Per i dettagli, see the popoverBackgroundViewClass
property of UIPopoverController
:
popoverBackgroundViewClass
classe da utilizzare per la visualizzazione del contenuto di popover sfondo.
@property (nonatomic, readwrite, retain) Class popoverBackgroundViewClass
Discussione
Il valore predefinito di questa proprietà è nulla, il che indica che il controllore popover deve utilizzare l'aspetto predefinito popover. Impostando questa proprietà su un valore diverso da zero, il controller popover utilizza la classe specificata per disegnare il contenuto di sfondo del popover. La classe specificata deve essere una sottoclasse di UIPopoverBackgroundView.
Disponibilità Disponibile in iOS 5.0 e versioni successive. Dichiarato in UIPopoverController.h
Havent lo ha usato ancora ma è bello vedere che c'è ancora più da personalizzare di un UIPopover – Jasper
Questo supporto è stato deprecato in iOS 9.0. Non pensate che qualcuno sappia se c'è un modo più nuovo? –
È ora possibile utilizzare la proprietà backgroundColour del popoverPresentationController per eseguire questa operazione, ad es.
if let popoverPresentationController = myController.popoverPresentationController {
popoverPresentationController.backgroundColor = UIColor(white: 1, alpha: 0.5)
}
(non dimenticare di impostare la visualizzazione nella popover e controlli in quella vista a trasparente così come appropriato per l'effetto che si sta tentando di acheive)
Vedere this SO answer per maggiori dettagli.
mentre questo dovrebbe funzionare in teoria, in realtà non funzionerà. –