2011-01-21 11 views
6

In sostanza si tratta di due questioni:Come rimuovere Popover freccia di iPad e il suo confine cornice

  1. Come rimuovere la freccia di vista popover dell'iPad?

  2. c'è un modo per rimuovere il bordo nero del popover?

Se non è possibile, si può suggerire un modo in iPad per visualizzare un'UIView (popover) nella parte superiore dello schermo, senza freccia e di frontiera (potrebbe essere confine luce trasparente), per favore? molte grazie.

E non penso che ModalView sia un'opzione corretta, in quanto non può essere ridimensionato e non può essere eliminato facendo clic su Vista modale esterna.

+0

Grazie a tutti. Sembra che non ci sia un modo semplice per rimuoverli, deve personalizzare il popover. Quello che sto pensando è di implementare un UIView trasparente a schermo intero e aggiungere un'altra vista di dimensioni più piccole in alto. in modo che quando viene visualizzato, si comporta come un popover. – Aragon

risposta

2

Non è possibile rimuovere il cromo attorno al popover. La soluzione migliore è reimplementare l'idea di un popover, ma usando un codice personalizzato.

7

AFIK non esiste un modo integrato per specificare "nessuna freccia" o per avere un popup senza bordi.

Questo hack, ma in pratica funziona. Nel contesto del vostro controller della vista che viene gestito dal controllore a comparsa, durante viewWillAppear :, ottenere la finestra pop-up e rimuovere il primo strato, che è ciò che rende la freccia e di frontiera:

- (void) viewWillAppear: (BOOL) animated 
{ 
    [super viewWillAppear: animated]; 

    UIView* v = self.view.superview; 
    NSLog(@"%@", NSStringFromClass([v class])); // this should print UIView 

    v = v.superview; 
    NSLog(@"%@", NSStringFromClass([v class])); // this should print UIPopoverView 

    [[v.layer.sublayers objectAtIndex:0] removeFromSuperlayer]; 
}  

Immagino che si potrebbe sperimentare con l'aggiunta del proprio livello che ha reso lo sfondo/il bordo nel modo desiderato.

+1

Grande hack, grazie. Un paio di note: è necessario '#importare '. Inoltre, ricorda di chiudere il controller popover prima di qualsiasi rotazione, altrimenti ottieni un EXC_BAD_ACCESS. – martip

+0

Rimuovere il livello è una pessima idea e probabilmente sarai respinto da Apple durante l'invio ad appStore. Guarda questa soluzione qui: https://github.com/werner77/WEPopover – oberthelot

7

Come rimuovere la freccia della vista popover di iPad?

Quando si chiama -presentPopoverFromBarButtonItem: allowedArrowDirections :, passa 0 come secondo parametro, piuttosto che una qualsiasi delle costanti. Questo non è documentato, ma Apple sta consentendo app in App Store quando si usa questa impostazione.

+0

Questo funziona.Tuttavia il popup viene ridimensionato e la sua larghezza non può essere modificata se si utilizza UIImagePicker come visualizzazione del contenuto. –

1
  • Non è possibile rimuovere la freccia o il bordo. Se esegui un qualche tipo di hack, come suggerito da TomSwift, rischi di bloccare e durante l'invio dell'app per l'appStore.

  • È possibile implementare il proprio controller popover personalizzato, come suggerito da Kevin. È possibile trovare un progetto opensource facendo esattamente questo qui: https://github.com/werner77/WEPopover. Backgound e freccia possono essere rimossi da quello o impostati come trasparenti.

Problemi correlati