2012-04-05 11 views

Respuesta

7

En un controlador de vista como un UINavigationController, cree un MKMapView con un marco del tamaño de la mitad superior de la vista y agréguelo como subvista del controlador de vista. Luego crearía una UIToolbar para mantener sus botones y alinear la parte superior de su marco con la parte inferior de MKMapView. Finalmente crea una UITableView con su marco justo debajo de los demás (asegúrate de conectar sus delegados).

A continuación, asigne el destino de su UIBarButtonItem que hace que el mapa a pantalla completa ir a un método que anima a los marcos de las tres vistas como esta:

[UIView animateWithDuration:0.24 
         delay:0.0 
        options:UIViewAnimationCurveEaseOut 
       animations:(void (^)(void)) ^{ 
        self.toolbar.frame = CGRectMake(0, MAP_HEIGHT_FULLSCREEN, 320, TOOLBAR_HEIGHT); 
        self.mapView.frame = CGRectMake(0,0,320,MAP_HEIGHT_FULLSCREEN); 
        self.tableView.frame = CGRectMake(0, MAP_HEIGHT_FULLSCREEN+TOOLBAR_HEIGHT, 320, MAP_HEIGHT_FULLSCREEN-MAP_HEIGHT); 
       } 
       completion:^ (BOOL finished){} 
]; 
+0

¡Guau, gracias! ¡Ya lo he implementado y se ve realmente genial! – sergiocg90

+0

@ SergioCalvoGonzález De nada. Si mi respuesta te ayudó, no te olvides de votar. –

+0

lo siento, pero no puedo votar aún ... – sergiocg90

1

Cree ambas vistas cómo está planificando, haga clic en un botón, cambie el marco de una vista para que se ajuste a la pantalla completa, si hace clic en el otro botón, haga lo mismo con la otra vista.

+0

Qué quiere decir la creación de dos viewcontrollers? ¿O en el mismo viewController implementar ambos y cambiar el marco cuando se presiona un botón? – sergiocg90

+1

1 viewcontroller. 2 visitas. Cambia los marcos de las vistas. –

Cuestiones relacionadas