2015-09-20 11 views
8

In iOS 8, popovers non avevano ombra. Ora in iOS 9, c'è un'ombra molto pesante e di vasta portata che può sembrare meno desiderabile su sfondi bianchi puri. Come si può rimuovere quell'ombra e invece aggiungere una sottile linea grigio chiaro attorno al popover? O almeno ridotto o reso più leggero.Come rimuovere l'ombra dietro i popover su iOS 9?

Ciò si verifica quando si visualizzano fogli di azione, presentando un controller di visualizzazione utilizzando .PopoverUIModalPresentationStyle e forse in altri contesti.

Popover segue: enter image description here

foglio Azione:

UIActionSheet(title: "Title", delegate: nil, cancelButtonTitle: "Cancel", destructiveButtonTitle: "Destroy").showInView(sender as! UIView) 

enter image description here

+0

Se si dispone di un caso d'uso per il motivo per cui i popover dovrebbero apparire diversi da tutti, suggerisco di presentare una richiesta di miglioramento con Apple. L'effetto ombra viene disegnato da UIPopoverPresentationController ma non si ottiene alcun modo per intervenire o personalizzare il suo comportamento. – matt

+0

Non c'è API per quello che vuoi. Crea la tua classe "popover" senza ombra se è ciò di cui hai bisogno. – rmaddy

+0

@Joey, avete a capire nulla, non è vero che la mia risposta è giusta? –

risposta

5

È possibile rendere il proprio sfondo popover personalizzato utilizzando UIPopoverBackgroundView

Nel initWithFrame del vostro UIPopoverBackgroundView implementazione, puoi usare a [UIColor clearColor per l'ombra esterna.

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 

     self.layer.shadowColor = [[UIColor clearColor] CGColor]; 
    } 

    return self; 
} 
+0

Stranamente, il colore sembra essere l'unica proprietà che puoi cambiare. Ho provato anche a cambiare le altre proprietà dell'ombra come il raggio, l'opacità, ecc. Inutilmente –