UIActionView muestra incorrectamente
-
10-07-2019 - |
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];
}
}
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.