Domanda

Ho un UIActionSheet che si apre non appena viene caricata la vista iniziale nella mia app per iPhone se ci sono dati che possono essere sincronizzati su un servizio web. Il problema è che UIActionSheet sta spuntando troppo in alto - esattamente metà della barra delle schede è esposta sotto il foglio di azione. Non sono consapevole che questo è causato dallo stile? Qualcuno può offrire una spiegazione / soluzione per evitare che ciò accada ?!

Grazie in anticipo per eventuali suggerimenti, il mio codice appare sotto ...

- (void)viewDidLoad {

    //...preset a few values here, unrelated to the view...
    //...

    // Add an actionsheet to prompt for a DB sync
    if ([myDatabase isSyncPossible] == true) { 
        UIActionSheet *actionsheet = [[UIActionSheet alloc]
            initWithTitle: @"You have information that hasn't been uploaded, would you like to sync now?"
            delegate: self
            cancelButtonTitle: @"No thanks, maybe later"
            destructiveButtonTitle: @"Yes, upload now"
            otherButtonTitles: nil];
        actionsheet.tag = 2;
        [actionsheet showInView:self.view];
        [actionsheet release];
    } 
}
È stato utile?

Soluzione

Supponendo che comprendo correttamente la tua descrizione, sembra che il frame di "self.view" non sia eseguito completamente sotto la barra delle schede ma invece vada solo a metà. Poiché il foglio di azione si disegna dalla parte inferiore della vista, inizierà da qualsiasi punto della vista. Per risolvere il problema, fai in modo che "self.view.frame" vada nella parte inferiore dello schermo.

Una schermata sarebbe di aiuto.

Altri suggerimenti

Per la chiamata showInView: , prova a utilizzare la vista di navigazione o la barra delle schede invece della vista del controller.

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