Domanda

vorrei creare una nuova tastiera per l'iPad.

Ho progettato una vista che ha le chiavi e tutto il lavoro sottostante riempimento in una casella di testo come l'utente preme i tasti, e passa il valore torna alla routine chiamante quando l'utente preme il pulsante di ritorno.

Il tutto funziona bene.

Ora - voglio creare questo punto di vista come un popover

.

Ho le operazioni di base completa (si apre e viene licenziato)

Ma ora ho bisogno di aiuto messa a punto.

Ecco le mie domande ...

1) Come si crea una finestra popover al centro dello schermo, senza una selezione UIPopoverArrowDirectionAny?

2) Assicurarsi che la finestra popover è la dimensione che ho creato con nel file XIB (attualmente, si ridimensiona e rimuove alcune delle dimensioni più a destra della finestra)

Grazie
tony

È stato utile?

Soluzione

Per presentarlo senza frecce passano 0 per "permittedArrowDirections":

[popOverController presentPopoverFromRect:rect inView:view permittedArrowDirections:0 animated:YES];

Per centrarlo, passare un rettangolo 1x1 situato al centro della vista:

CGRect rect = CGRectMake(viewWidth/2, viewHeight/2, 1, 1);
[popOverController presentPopoverFromRect:rect inView:view permittedArrowDirections:0 animated:YES];

allora avete un centrato e freccia-libera popover.

Il bit sulla rimozione della freccia potrebbe rompere in qualsiasi momento. Essi non hanno fornito un'opzione di UIPopoverArrowDirectionNone per un motivo, si può scegliere di un'eccezione in futuro, quando 0 è passato, o di default per qualcosa. Usatelo a vostro rischio.

Altri suggerimenti

Se si utilizza un UIPopoverController, avrà una freccia. Qui ci sono le vostre scelte.

UIPopoverArrowDirectionAny  
UIPopoverArrowDirectionUp
UIPopoverArrowDirectionDown
UIPopoverArrowDirectionLeft
UIPopoverArrowDirectionRight

Come si può vedere non v'è alcuna UIPopoverArrowDirectionNone

Per quanto riguarda la dimensione XIB, nella vostra viewDidLoad metodo del file di implementazione, è possibile impostare la seguente.

self.contentSizeForViewInPopover = CGSizeMake(320.0, 360.0);

È possibile impostare la dimensione in qualsiasi modo ti piace per la popover.

Ho appena lavorato questo fuori, ma voleva fare tanto nel storyboard possibile che cambia l'approccio un po ':

1) Selezionare la popover nello storyboard e un-tick Indicazioni Su / Giù / Sinistra / Destra per sbarazzarsi delle frecce.

Per centrare sulla sostituzione schermo preparare segue e fare qualcosa di simile a questo:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    UIStoryboardPopoverSegue* popover = (UIStoryboardPopoverSegue*)segue;
    CGFloat horizontalInset = (self.view.frame.size.width - popover.popoverController.popoverContentSize.width) / (CGFloat)2.0;
    CGFloat verticalInset = (self.view.frame.size.height - popover.popoverController.popoverContentSize.height) / (CGFloat)2.0;
    popover.popoverController.popoverLayoutMargins =
        UIEdgeInsetsMake(
            verticalInset,
          horizontalInset,
            verticalInset,
          horizontalInset);
}

Nel mio caso ho anche scoperto che il raggio d'angolo del popover segue non corrisponde con il mio progetto in modo da cambiare il colore di sfondo per cancellare a ordinare che fuori cioè aggiungere questo al blocco di cui sopra:

popover.popoverController.backgroundColor = [UIColor clearColor];

2) Nel regolatore destinazione per l'segue trovare l'attributo 'Popover' e spuntare 'uso esplicito Size' e mettere la dimensione di voi vuole che appaia in modalità popover.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top