Pregunta

Tengo una UIActionSheet que aparece tan pronto como se carga la vista inicial en la aplicación de mi iPhone si hay datos que pueden sincronizarse de nuevo a un servicio web. El problema es que la UIActionSheet está apareciendo demasiado alto: exactamente la mitad de la barra de pestañas está expuesta debajo de la hoja de acción. ¿No sé que esto es causado por el estilo? ¿Alguien puede ofrecer una explicación / solución para evitar que esto suceda?

Gracias de antemano por cualquier sugerencia, mi código aparece a continuación ...

- (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];
    } 
}
¿Fue útil?

Solución

Suponiendo que entiendo su descripción correctamente, parece que el marco de 'self.view' no se ejecuta completamente debajo de la barra de pestañas, sino que se va a la mitad. Dado que la hoja de acción se dibuja desde la parte inferior de la vista, comenzará desde donde sea que esa vista lo haga. Para solucionarlo, haga que 'self.view.frame' vaya a la parte inferior de la pantalla.

Una captura de pantalla ayudaría.

Otros consejos

Para la llamada showInView: , intente usar la vista de navegación o la vista de barra de pestañas en lugar de la vista de su controlador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top