Анимация перехода с помощью скручивания страницы в iPhone не оставляет панели инструментов без изменений - PullRequest
4 голосов
/ 26 апреля 2011

Эй, ребята, я пытаюсь имитировать частичную анимацию скручивания страницы, которую можно найти в приложении «Карта», которое поставляется на iPhone.Я могу заставить его частично скручиваться, но панель инструментов скручивается со страницей скручивания, которая мне не нужна.Я просто хочу, чтобы панель инструментов внизу экрана оставалась там, где она есть, в то время как само представление карты свернуто.

У меня есть отображение вида карты в виде контроллера навигации.Для меня это имеет смысл, если я загружаю это представление из контроллера корневого представления, и я могу успешно, однако, анимация не работает, как ожидалось.Вместо анимации скручивания страницы происходит скольжение вида справа и установленная мною анимация происходит внутри кнопок внутри представления.Это действительно очень странно ... Я даже попробовал немодальные стили перехода и получил точно такой же эффект.Вот соответствующий код:

-(IBAction)displayInfoButtonTapped {
    NSLog(@"ParkingRootViewController displayInfoButtonTapped");

    MapInfoView *mapInfoView = [[MapInfoView alloc] initWithNibName:@"MapInfoView" bundle:nil];


    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:mapInfoView.view cache:YES];
    [UIView commitAnimations];  

    [self.navigationController pushViewController:mapInfoView animated:YES];
    [mapInfoView release];

    [mapView displayInfoButtonTapped];

}

Кто-нибудь имеет представление о том, что я делаю неправильно?Или у кого-нибудь есть лучший способ как делать то, что я пытаюсь сделать?Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 ноября 2011

У меня это работает, но при наличии нескольких видов и использовании анимации, чтобы удалить вид сверху, оставляя нижний вид на месте.Page Curl не касается панели инструментов.Вот мой код для этого.

[UIView beginAnimations:nil context:NULL];
[self.mapView removeFromSuperview];
[UIView setAnimationDuration:1.5];  
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
[UIView commitAnimations];

Итак, мой контроллер вида имеет MKMapView и tableView, вид карты сверху.Когда пользователь нажимает кнопку на панели инструментов, анимация, показанная выше, воспроизводится только при наведении курсора карты.

Надеюсь, это имеет смысл.

0 голосов
/ 26 апреля 2011

Анимации скручивания, которые вы получаете из UiView, всегда полноэкранные.Очень плохо.Для получения другого эффекта скручивания вы должны испачкать руки с помощью OpenGL.

...